Точный поиск слов в Solr - PullRequest
       32

Точный поиск слов в Solr

2 голосов
/ 21 июня 2011

У меня есть вопрос, который тесно связан с этим вопросом .

В моей схеме у меня есть поле

<field name="text" type="textgen" indexed="true" stored="true" required="true"/>

Это дает точное совпадение, т.е.stemming disabled

eat = eat

Возможно ли при настройке на textgen искать другие варианты слова

например.есть = есть, есть, есть

есть ~ 0 даст похожие звучащие слова, такие как мясо, ритм и т. д., но это не то, что я хочу.Я думаю, что единственный способ добиться этого - добавить еще одно поле, отличное от textgen, но если есть более простой способ, мне очень интересно это услышать.

Ответы [ 2 ]

6 голосов
/ 22 июня 2011

Использование copyfield операторов - нормальный подход в Solr.Поскольку stemming является ответом именно на то, что вы спрашиваете, это то, что я рекомендую вам использовать.Вы можете установить stored=false, если вас беспокоит размер индекса.

Вы также можете использовать lemmatisation, что является противоположностью стволовых - где вы вместо этого добавляете слова ко всем выраженным формам.Обычно это выполняется для поискового запроса, например, с eat до eat, eats, eating и т. Д.

Третьим вариантом может быть использование подстановочного поиска, хотя я бы не поощрял это.Не в последнюю очередь, поскольку он обходит все настроенные фильтры схемы для целевого поля.

0 голосов
/ 22 июня 2011

Если вы используете text в качестве типа поля, то поедание, поедание, поедание и поедание будут сохранены как eat, и поиск по FieldName:eat найдет их все.Если вы измените тип поля на text-gen, то при поиске FieldName:eat будет найдено только «есть», а не есть, есть или есть.

...