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

Re: FTS, ISPELL и Ё

From: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
To: "Александр В(dot) Сизов" <subs(at)arpanet(dot)ru>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: FTS, ISPELL и Ё
Date: 2008-12-15 08:45:03
Message-ID: Pine.LNX.4.64.0812151129500.28443@sn.sai.msu.ru (view raw or flat)
Thread:
Lists: pgsql-ru-general
Александр, руководствуйтесь здравым смыслом - что проиндексируете, то и 
найдете. Никакой магии внутри у нас нет, все отдано здесь на откуп 
пользовательскому словарю. Если вы хотите различать 'е' и 'ё', то напишите
словарь-враппер (давно всем предлагаю) вокруг испелла, который опционально
возвращает нормализованные формы и/или оригинальное слово. Его вы используете
пи индексации, а при поиске одну из конфигураций - со словраем, который
понимает 'ё', который не понимает. 
Но обычно, просто используйте нечто вроде 
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

Responses

pgsql-ru-general by date

Next:From: Александр В. СизовDate: 2008-12-15 10:08:37
Subject: Re: FTS, ISPELL и Ё
Previous:From: Andrey N. OktyabrskiDate: 2008-12-15 05:43:50
Subject: Re: FTS, ISPELL и Ё

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