Я использую elasticsearch 6 и у меня есть следующий запрос
{
"query":{
"bool":{
"should":[
{
"match_phrase":{
"fieldOne":{
"query":"One two three",
"slop":10
}
}
},
{
"match_phrase":{
"fieldTwo":{
"query":"one two three",
"slop":10
}
}
}
]
}
}
}
Это хорошо работает, когда я хочу сопоставить два поля с терминами в запросе.
Однако, если у меня есть документ, в котором есть термин «один» и «два» в fieldOne, приведенное выше не возвращает результатов, поскольку требуется «три».
Кажется, я не могу найти способ сделать условия в запросе необязательными, например. я хотел сказать, что найдите любой из терминов в этих двух полях
Причина, по которой я выбрал match_phrase, заключается в использовании помоев, которые позволяют терминам находиться в разных позициях в поле, что мне также требуется.