Как агрегировать результаты эластичного предложения? - PullRequest
0 голосов
/ 26 марта 2019

Я использую индекс эластичности со следующим отображением:

{
  "mapping": {
    "concept": {
      "properties": {
        "filter-key": {
          "type": "completion",
          "analyzer": "custom_index_analyzer",
          "search_analyzer": "custom_query_analyzer",
          "preserve_separators": false,
          "preserve_position_increments": true,
          "max_input_length": 50
        },
        "custom_id": {
          "type": "keyword"
        }
      }
    }
  }
}

Индекс содержит, например, следующие записи:

  {
    "_source" : {
      "filter-key" : {
        "weight" : 22,
        "input" : "ABC"
      },
      "custom_id" : "190006021550"
    }
  },
  {
    "_source" : {
      "filter-key" : {
        "weight" : 31,
        "input" : "ABC"
      },
      "custom_id" : "190006171313"
    }
  },
  {
    "_source" : {
      "filter-key" : {
        "weight" : 37,
        "input" : "ABBB"
      },
      "custom_id" : "190006171313"
    }
  }

Теперь я хотел бы использовать предложения эластичности в сочетании сагрегации, чтобы получить следующие предложения для запроса "AB":

{"text": "ABC", "custom_ids": ["190006021550","190006171313"]}
{"text": "ABBB", "custom_ids": ["190006171313"]}

Так что на самом деле я хотел бы сгруппировать предложения по одному из полей (filter-key.input).Это возможно в упругой?Нужно ли для этого какое-либо специальное определение сопоставления?

...