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>
Другие вопросы по тегам