Я использую solr для поиска набора данных по имени (например, «Dan» или «Joe Smith»). Я хотел бы вернуть результаты, указанные в запросе (изменить: с подстановочным знаком в конце) в порядке, указанном другим индексированным полем double_score (например, 10.0 или 72.3). В настоящее время у меня есть следующее, которое не работает:Обработчик запроса Dismax
<!-- Note that the default search is on the field name -->
<requestHandler name="/scoresearch" class="solr.SearchHandler" default="true">
<!-- <lst name="invariants">
<str name="q">{!boost b=sum(double_score) defType=dismax v=$qq}</str>
</lst> -->
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<!-- <str name="qq"></str> -->
<str name="qf">double_score</str>
<str name="debug">true</str>
<str name="q.alt">*:*</str>
</lst>
</requestHandler>
Если я удалю комментарии, то поиск действительно работает s.t. любой запрос, который я делаю, заменяется на q.alt, а затем увеличивается на значение double_score. Если бы это не заменило q.alt, это было бы желательным эффектом.
Также обратите внимание, что пока я еще не углубился в более интересные возможности, такие как токенизация имен, я действительно планирую это сделать. Поэтому любое возможное предложение/решение не должно исключать этого.
Почему QF 'double_score'? В какой области есть «Дэн» и «Джо Смит»? –
double_score - это то, что я хочу определить. Поле с этими двумя другими - это «имя» (поле поиска по умолчанию) – user592419