Итак, я пытаюсь достичь частичного соответствия с настраиваемыми полями поиска для каждого индекса. Я генерирую match_phrase_prefix
со значением для поиска, и если это более одного слова, я генерирую еще одно слово (я мог бы использовать prefix
, но он прослушивал или имел недокументированные настройки).Как увеличить запрос индексов в булевом запросе
В этом случае я пытаюсь найти "belden cable"
; запрос выглядит следующим образом:
{
"query":{
"bool":{
"should":
[
{
"indices":{
"indices":["addresss"],
"query":{
"bool":{
"should":
[
{"match_phrase_prefix":{"name":"BELDEN CABLE"}}
{"match_phrase_prefix":{"name":"BELDEN"}},
{"match_phrase_prefix":{"name":"CABLE"}}
]
}
},
"no_match_query":"none"
}
},
{
"indices":{
"indices":["customers"],
"query":{
"bool":{
"should":[
{"match_phrase_prefix":{"_all":"BELDEN CABLE"}},
{"match_phrase_prefix":{"_all":"CABLE"}},
{"match_phrase_prefix":{"_all":"BELDEN"}}
]
}
},
"no_match_query":"none"
}
}
]
}
}
Моя цель поиска, чтобы получить результаты, которые имеют "belden cable"
сначала, тогда поиски только "belden"
или "cable"
.
Это возвращает (на пример) 4 результата, у которых есть "belden cable"
, а затем результат, который имеет только "cable"
, то другие результаты поиска "belden cable"
.
Как я могу повысить результаты, которые имеют полное значение поиска? («Belden кабель»)
Я попытался отделяя индексы запроса обоих слов и разделенных слов, но это дает худшее результаты релевантности.
Также я попытался использовать повышающий заявление внутри match_phrase_prefix
для "belden cable"
без изменения результатов ..
Что такое отображение поля 'name'? –
"name": {"type": "string"} –