Apache solr точное совпадение запроса с полными индексированными данными
Я использую Solr 4.8. У меня очень базовый вопрос. Предположим, у меня есть поле, которое содержит строку, например, "Я в классе" для документа, а для второго документа его значение - "класс". Теперь я хочу выполнить запрос точно с сохраненной строкой. т.е. если пользователь ищет класс, он должен вернуть второй документ, так как эти две строки равны. Он не должен возвращать первый документ, так как мой запрос и его значение не совсем совпадают.
Я хочу добиться того же в apache solr. Как это реализовать.
1 ответ
Решение
Вам нужен токенайзер ключевых слов. https://cwiki.apache.org/confluence/display/solr/Tokenizers
Этот токенизатор обрабатывает все текстовое поле как один токен.
В качестве примера в схеме XML:
<field name="title" type="exactstring" indexed="true" stored="true" />
....
<fieldType name="exactstring" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>