Получите от ElasticSearch, почему результат является хитом - PullRequest
0 голосов
/ 19 апреля 2019

В приведенном ниже поиске 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 жирным шрифтом текста, найденного внутри фразы.

1 Ответ

1 голос
/ 19 апреля 2019

Я думаю, что 2 решения в Узнайте, какие поля совпадают в запросе с несколькими совпадениями все еще являются действительными решениями:

  • Выделите, чтобы найти его.
  • Разделить запрос на несколько именованных запросов на совпадение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...