Postgresql полнотекстовый поиск слов с апострофами - PullRequest
3 голосов
/ 15 февраля 2011

Я работаю над созданием настраиваемой конфигурации словаря ispell для Postgresql 8.4 и у меня возникают некоторые проблемы с получением слов с апострофами для правильного анализа. Словари ispell, включенные в Postgresql, включают в себя файлы .affix, содержащие правило SFX «M», которое указывает расширенную форму его слова.

Вот пример, предполагая, что у меня есть dictionary/SM в моем файле словаря:

SELECT to_tsvector('english_ispell', 'dictionary''s dictionaries');

Ожидаемый результат:

'dictionary':1,2

Фактический выход:

s':2, 'dictionary':1,3

Я что-то делаю неправильно? Вот вывод из ts_debug, чтобы показать, как его анализируют.

SELECT * FROM ts_debug('english_ispell', 'dictionary''s dictionaries');

   alias   |   description   |    token     |         dictionaries          |   dictionary   |   lexemes    
-----------+-----------------+--------------+-------------------------------+----------------+--------------
 asciiword | Word, all ASCII | dictionary   | {english_ispell,english_stem} | english_ispell | {dictionary}
 blank     | Space symbols   | '            | {}                            |                | 
 asciiword | Word, all ASCII | s            | {english_ispell,english_stem} | english_ispell | {s}
 blank     | Space symbols   |              | {}                            |                | 
 asciiword | Word, all ASCII | dictionaries | {english_ispell,english_stem} | english_ispell | {dictionary}

Как мне заставить Postgresql проанализировать ' как часть одного слова и не разбить его на "символ пробела"?

...