Elastic Search другое поле - PullRequest
0 голосов
/ 16 ноября 2018

Я сделал простое сопоставление с двумя полями, где я анализирую одно поле с типом текста, а другое поле с типом ключевого слова. Пример

fields: Category_one, Category_two
Data
{"Category_one": "liked wine", "Category_two":"Wine"}
{"Category_one": "liked pasta", "Category_two":"pasta"}
{"Category_one": "liked wine and pasta", "Category_two":"Wine and pasta"}
{"Category_one": "liked wine so much", "Category_two":"Wine"} 

...........
..........
.....

Теперь я написал поисковый запрос для индекса.

Get _search/cat
    {
    "size": 20,
      "query": {
        "match": {
          "Category_one.ngrams": {
            "query": "Nice food place in XYZ location",
            "analyzer": "standard"
          }
        }
        }
      }
    }

Работает нормально. Я хочу найти топ-5 уникальных Category_two значений в соответствии с их оценкой по запросу в Category_one.

Например:

Допустим, запрос возвращает 20 результатов («размер» в запросе выше) с разными баллами, из которых первые 6 - это вино (Category_two), следующие 4 - макароны (Category_two) и т. Д. .

Эти 20 результатов имеют дубликаты. Как я могу получить 3 лучших уникальных значения из Category_two для "Wine", "pasta", "wine and pasta" в соответствии с их оценками в Category_one match match?

Может кто-нибудь помочь мне понять, как подойти к этой проблеме? Мы ценим любые предложения.

Спасибо.

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