Dne 29.8.2010 18:05, Lukas Barton napsal(a):
> To ale bude desne pomale, nebot se nepouzije index.
> Rozumnejsi je pridat sloupec, kde aplikace predpocita hodnotu
> bezdiakritiky (lowercase,...) a stejne tak upravit vyhledavaci
> retezec.

neni treba sloupec, muzete si nechat pocitat index primo nad tou vasi
funkci (minimalne postgres to umi).

create index name_ascii on mojetabulka(makeascii(name));

nase reseni je zhruba takove: mame tridu v jave ktera se stara o spravne
preklapeni češtiny do cestiny (staticka metoda). zaroven umi vygenerovat
funkci pro ruzne DB stroje. Tuto funkci lze bez obav pouzivat v HQL.


> 
> Dalsi moznost je pouzit k hledani v textu neco jineho nez DB...
> 
>   Lukas
> 
> On 8/29/10, Ondra Medek <[email protected]> wrote:
>> No asi bych zkusil vytvorit DB ulozenou proceduru, ktera vrati retezec
>> bez diakritiky, napr. bezd(), pak v SQL by to bylo neco jako:
>> WHERE lower(bezd(alias)) like lower(...)
>> a toho lze pak docilit pres sqlRestriction, pripadne
>> SQLAliasedCriterion
>> http://opensource.atlassian.com/projects/hibernate/browse/HHH-2952
>>
>> 2010/8/29 danisevsky <[email protected]>:
>>> Zdravím, používám hibernate a postgresql a potřeboval bych pořešit
>>> následující věc. Vyzvednutí všech uživatelů, kteří mají v políčku
>>> alias něco, co obsahuje "Žluťoučký" nebo "žluťoučký":
>>>
>>> Criteria crit = session.createCriteria(Person.class);
>>> crit.add(Restrictions.ilike('alias', 'žluťoučký',
>>> MatchMode.ANYWHERE).ignoreCase();
>>> List results = crit.list();
>>>
>>> jak nejlépe docílit, aby do výsledku dotazu zahrnul i políčka
>>> obsahující "Zlutoučký" nebo např "zlutoucky" - tedy částečně nebo
>>> zcela bez diakritiky?
>>>
>>> Předem díky za jakoukoliv radu.
>>>
>>
>>
>>
>> --
>> Ondra Medek
>>

-- 
Martin Beránek
ICZ a.s., Pobočka Brno
Londýnské náměstí 2/856, 639 00  Brno
Tel.: +420 222 272 323
Tel.: +420 222 272 111
Fax.: +420 222 272 122
mailto:[email protected]
http://www.i.cz

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem