Эластичный поиск: как выделить фрагмент после поискового запроса? - PullRequest
0 голосов
/ 20 апреля 2019

Я работаю над проектом поиска, для которого требуется фрагмент выделения после слова поиска.

Мой запрос

{
  "query": {
        "multi_match" : {
            "query" : "prawn",
            "fields": ["name"]
            , "operator": "and",
            "use_dis_max": true
        }
  },

  "_source": ["name"],
  "highlight": {
    "fields": {
      "name": {
        "pre_tags" : [""], "post_tags" : [""],
        "fragment_size": 3,
        "number_of_fragments": 1
      }
    }
  }
}

Результат:

{
 "name" : "special prawn curry"
        },
        "highlight" : {
          "name" : [
            "special prawn"
          ]
        }

Принимая во внимание, что я хочу результат как

 "name" : "special prawn curry"
        },
        "highlight" : {
          "name" : [
            "prawn curry"
          ]
        }

то есть фрагмент после поискового слова. Возможно ли это?

1 Ответ

0 голосов
/ 22 апреля 2019

Ну, вы можете использовать Обычный маркер (используя "type":"plain") в запросе выделения и посмотреть, сработает ли это.

Раньше это был подсветчик по умолчанию до 6.0 выпуска , где они сделали Unified в качестве подсветки по умолчанию.

POST <your_index_name>/_search
{
  "query": {
        "multi_match" : {
            "query" : "prawn",
            "fields": ["name"]
            , "operator": "and",
            "use_dis_max": true
        }
  },

  "_source": ["name"],
  "highlight": {
    "fields": {
      "name": {
        "type": "plain",                        <---- Added this
        "pre_tags" : [""], "post_tags" : [""],
        "fragment_size": 3,
        "number_of_fragments": 1,
        "order": "score"
      }
    }
  }
}

Надеюсь, это поможет!

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