подскажите, как отсортировать результаты документов в Solr по порядку слов в запросе?
Например, если я введу для запроса 2 слова milk
и chocolate
Я хочу повысить документыкоторый содержит эти слова в том же порядке.
В моем запросе: http://localhost:8983/solr/product/select?defType=edismax&fl=*%2C%20score&q.op=AND&q=chocolate+milk&qf=title_token%5E10
вы можете видеть, что у меня есть запрос chocolate milk
, и результаты этого запроса:
{
id: 3346664,
title: "Milk with chocolate",
_version_: 1648030883251224600,
score: 79.53341
},
{
id: 8754567,
title: "Chocolate of Milk",
_version_: 1648030883402219500,
score: 79.53341
},
{
id: 345428,
title: "Delicious Thins Milk Chocolate",
_version_: 1648030884582916000,
score: 74.86635
}
Как вы можете видеть мойпервые 2 документа имеют тот же score
, но первый - это документ, в котором порядок совпадений слов не совпадает с порядком слов в моем запросе. Можете ли вы сказать мне, как повысить документы, которые соответствуют порядку слов запроса? Спасибо.
Мое поле заголовка заголовка имеет следующую конфигурацию:
<fieldType name="text_token" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>