В приведенном ниже поиске Elastic я ищу слово Balances
в двух полях name
и notes
:
GET /_search
{ "query": {
"multi_match": { "query": "Balances",
"fields": ["name","notes"]
}
}
}
И результат в поле name
:
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.673515,
"hits" : [
{
"_index" : "idx",
"_type" : "_doc",
"_id" : "25",
"_score" : 1.673515,
"_source" : {
"name" : "Deposits checking accounts balances",
"notes" : "These are the notes",
"@timestamp" : "2019-04-18T21:05:00.387Z",
"id" : 25,
"@version" : "1"
}
}
]
}
Теперь я хочу знать, в каком поле ElasticSearch найдено значение. Я мог бы оценить результат и посмотреть, находится ли искомый текст в name
или notes
, но я не могу этого сделать, если это нечеткий поиск.
Может ли ElasticSearch сообщить мне, в каком поле был найден текст, и, кроме того, предоставить фрагмент из 5 слов слева и справа от результата, чтобы сообщить пользователю, почему результат является попаданием?
То, чего я хочу достичь, похоже на выделение Google жирным шрифтом текста, найденного внутри фразы.