У меня есть следующий эластичный поисковый запрос с строкой запроса, которая должна соответствовать всем полям, а термин query должен соответствовать соответствующим полям, указанным ниже. Я хочу, чтобы только часть query_string была частью выделения. Когда я использую required_field_match, он выделяет только термин «электронная почта» в поле канала. без required_field_match он соответствует «email» и query_string для всех полей, которые я не хочу. Можете ли вы дать мне знать, как исключить из поля «канал»?Elasticsearch исключает bool «term» от подсчета
{
"query":{
"bool":{
"must":[
{
"term":{
"channel":"email"
}
},
{
"query_string":{
"query":"\"payment type\"",
"default_operator":"AND"
}
}
]
}
},
"highlight":{
"pre_tags":[
"<span class='highlight'>"
],
"post_tags":[
"</span>"
],
"require_field_match":false,
"fields":{
"requestSummary":{
"number_of_fragments":0
},
"emails.emailBody":{
"number_of_fragments":0
},
"chatTextArray.text":{
"number_of_fragments":0
},
"chatTextArray.name":{
"number_of_fragments":0
}
}
},
"facets":{
"channel":{
"terms":{
"field":"channel"
}
},
"siteId":{
"terms":{
"field":"siteId"
}
},
"closeDt":{
"terms":{
"field":"closeDt"
}
},
"srId":{
"terms":{
"field":"srId"
}
}
}
}
Результаты поиска:
{
"highlight":{
"emails.emailBody":[
"helps keep your information safe, visit: http://pages.half.ebay.com/help/policy/privacy.html#toc-02
In this <span class='highlight'>email</span>"
],
"requestSummary":[
"Change <span class='highlight'>payment</span> <span class='highlight'>type</span>"
]
}
}