Поиск коротких слов с помощью SOLR - PullRequest
5 голосов
/ 11 июня 2010

Я использую SOLR вместе с NGramTokenizerFactory для создания токенов поиска для подстрок слов

NGramTokenizer настроен с минимальной длиной слова 3

Это означает, что я могу искать, например, "unb "и затем сопоставьте слово" невероятно ".

Однако у меня проблема с короткими словами, такими как" I "и" in ".Они не индексируются SOLR (я подозреваю, что это из-за NGramTokenizer), и поэтому я не могу их искать.

Я не хочу уменьшать минимальную длину слова до 1 или 2, так как это создает огромныепоисковый индекс.Но я бы хотел, чтобы SOLR включал целые слова, длина которых уже ниже этого минимума.

Как я могу это сделать?

/ Carsten

1 Ответ

6 голосов
/ 11 июня 2010

Прежде всего, попытайтесь понять, почему ваши слова не индексируются с помощью solr с помощью «Аналитического инструмента»

http://localhost:8080/solr/admin/analysis.jsp

Просто поместите поле и текст, который вы ищете, и посмотрите, какой анализаторфильтрует ваш короткий срок.Я предлагаю вам сделать это, потому что вы сказали, что у вас есть только «подозреваемый», и вы должны быть уверены в том, какой анализатор фильтрует ваши данные.

Тогда почему бы вам просто не скопировать термин в другое поле безэтот анализатор?

Таким образом, ваши термины будут проиндексированы дважды и будут отображаться как точное слово и как n-грамм.Затем вам нужно разобраться с оценками двух разных полей.

Надеюсь, это вам как-то помогло.

Некоторая ссылка для агрегации и атрибута поля копирования:

Индексирование данных в нескольких полях

Использование тега поля копирования

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