Skip site navigation (1) Skip section navigation (2)

Re: FTS, ISPELL и Ё

From: "Александр В(dot) Сизов" <subs(at)arpanet(dot)ru>
To: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: FTS, ISPELL и Ё
Date: 2008-12-15 10:08:37
Message-ID: 49462CA5.1030907@arpanet.ru (view raw or flat)
Thread:
Lists: pgsql-ru-general
спс, с translate () как-то все упростилось... ))

Oleg Bartunov пишет:
> Александр, руководствуйтесь здравым смыслом - что проиндексируете, то 
> и найдете. Никакой магии внутри у нас нет, все отдано здесь на откуп 
> пользовательскому словарю. Если вы хотите различать 'е' и 'ё', то 
> напишите
> словарь-враппер (давно всем предлагаю) вокруг испелла, который 
> опционально
> возвращает нормализованные формы и/или оригинальное слово. Его вы 
> используете
> пи индексации, а при поиске одну из конфигураций - со словраем, который
> понимает 'ё', который не понимает. Но обычно, просто используйте нечто 
> вроде to_tsvector(translate(string,'ё','е')) и не будет никаких проблем.
>
> Олег
>
> Олег
> On Mon, 15 Dec 2008, "Александр В. Сизов" wrote:
>
>> Hello, world!
>>
>> Решил поэкспериментировать в FreeBSD6.3 под PostgreSQL 8.3.5 (+ICU) с 
>> FTS. В качестве словаря выбрал Ispell 0.99g5, собрал с поддержкой 
>> 'ё'. Сразу возникла проблема: 'самолёт' @@ 'самолет' = false. Ок, 
>> пересобрал без поддержки 'ё' => 'самолёт' @@ 'самолет' = false. Ок, 
>> собрал, распарсил, вырезал ё руками (ни в одной строчке не оставил 
>> 'ё') - 'самолёт' @@ 'самолет' = false, при этом 'самолёты', 
>> 'самолётами', ... нормально приводятся к каноническому виду (как???).
>> Привожу код:
>>
>> -------------------------------------------------------- CUT
>> CREATE SCHEMA library;
>>
>> CREATE TEXT SEARCH DICTIONARY library.ispell_ru (
>>   TEMPLATE  = ispell,
>>   DictFile  = ispell_ru,
>>   AffFile   = ispell_ru,
>>   StopWords = russian
>> );
>>
>> CREATE TEXT SEARCH CONFIGURATION library.russian (
>>   COPY = russian
>> );
>>
>> ALTER TEXT SEARCH CONFIGURATION library.russian
>>   ALTER MAPPING FOR hword, hword_part, word
>>       WITH library.ispell_ru, russian_stem;
>>
>> ALTER TEXT SEARCH CONFIGURATION library.russian
>>   DROP MAPPING FOR
>>       email,
>>       file,
>>       float,
>>       host,
>>       sfloat,
>>       url,
>>       url_path,
>>       version;
>>
>> -------------------------------------------------------- CUT
>>
>> На время, чтобы на долго не застревать, написал функции, подменяющие 
>> ё->е в поиске и записи в БД, но хотелось бы понять и решить проблему...
>>
>> WBR!
>>
>>
>
>     Regards,
>         Oleg
> _____________________________________________________________
> Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru),
> Sternberg Astronomical Institute, Moscow University, Russia
> Internet: oleg(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
> phone: +007(495)939-16-83, +007(495)939-23-83


In response to

pgsql-ru-general by date

Next:From: Dmitry TurinDate: 2008-12-19 11:11:20
Subject: Управляемая сцена
Previous:From: Oleg BartunovDate: 2008-12-15 08:45:03
Subject: Re: FTS, ISPELL и Ё

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group