Предотвратить возникновение имен собственных в PostgreSQL? - PullRequest
3 голосов
/ 09 декабря 2008

В своем стремлении к токенам stemm в лексемы механизм полнотекстового поиска PostgreSQL также сокращает собственные имена. Например:

essais=> select to_tsquery('english', 'bortzmeyer');
to_tsquery 
------------
'bortzmey'

essais=> select to_tsquery('english', 'balling');
to_tsquery 
------------
'ball'
(1 row)

По крайней мере, для первого, я уверен, что это не в словаре английского языка! Как лучше всего избежать этого ложного побега?

Ответы [ 2 ]

4 голосов
/ 10 декабря 2008

Смысл алгоритмов обобщения состоит в , а не , чтобы привести каждое слово к правильному основанию; цель состоит в том, чтобы свести слова, которые похожи, к общепринятой форме. Цель, как правило, состоит не в том, чтобы получить слово, которое может быть представлено пользователю: даже если «balling» и «ball» приведут к «kjebnkkekaa», алгоритм верен, потому что он по-прежнему видит «balling» и «ball» в целом относительно то же самое.

Также имейте в виду, что ни один алгоритм стволов не является абсолютно идеальным, для получения дополнительной информации найдите алгоритм Портеринга

2 голосов
/ 10 декабря 2008

Это из-за того, что объяснял Snowball здесь . По сути, вы захотите отключить стеммер Snowball и использовать только iSpell или один из других словарей, но это также снизит эффективность обработки слов, не входящих в словари.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...