Re: FTS, ISPELL и Ё
От | Oleg Bartunov |
---|---|
Тема | Re: FTS, ISPELL и Ё |
Дата | |
Msg-id | Pine.LNX.4.64.0812151129500.28443@sn.sai.msu.ru обсуждение исходный текст |
Ответ на | FTS, ISPELL и Ё ("Александр В. Сизов"<subs@arpanet.ru>) |
Ответы |
Re: FTS, ISPELL и Ё
("Александр В. Сизов" <subs@arpanet.ru>)
|
Список | 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@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
В списке pgsql-ru-general по дате отправления: