Я предполагаю, что ваше поле является TextField, по умолчанию solr выполняет поиск по нечеткому полю в этом поле. Вы хотите настроить поле как поле строки и не добавлять токенизатор, тогда вы получите точное соответствие.
Вы можете даже комбинировать точный поиск с помощью нечеткого поиска и использовать DisMax для повышения относительных весов.
Пример (schema.xml):
<field name="name" type="string" indexed="true" stored="false" required="true" />
<field name="nameString" type="string" indexed="true" stored="false" required="true" />
<copyField source="name" dest="nameString"/>
Пример (solrconfig.xml):
<requestHandler name="accounts" class="solr.SearchHandler">
<lst name="defaults">
<str name="defType">dismax</str>
<str name="qf">
nameString^10.0 name^5.0 description^1.0
</str>
<str name="tie">0.1</str>
</lst>
</requestHandler>
Возможно ли это во время запроса со специальным оператором? Например = налоги – mlissner
@mlissner, приведенный выше XML - это просто параметры по умолчанию, которые добавляются в запрос. U мог бы сделать это, добавив к вашему запросу defType = dismax & qa = nameString^10.0 name^5.0 description^1.0 и т. Д. –
@ItayMoav, цель состоит в том, чтобы * пользователи * могли разместить точный запрос соответствия. – mlissner