Упругий поиск сортировать - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть таблица для некоторых действий, таких как

[
{
  "id": 123,
  "name": "Ram",
  "status": 1,
  "activity": "Poster Design"
},
{
  "id": 123,
  "name": "Ram",
  "status": 1,
  "activity": "Poster Design"
},
{
  "id": 124,
  "name": "Leo",
  "categories": [
    "A",
    "B",
    "C"
  ],
  "status": 1,
  "activity": "Brochure"
},
{
  "id": 134,
  "name": "Levin",
  "categories": [
    "A",
    "B",
    "C"
  ],
  "status": 1,
  "activity": "3D Printing"
}

]

Я хочу получить эти данные из упругого поиска 5.5 путем сортировки по полевой активности, но мне нужны все данные, соответствующиеto name = "Ram", а затем оставаясь в одном запросе.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Я бы предложил использовать запрос bool в сочетании с предложением should .U также нужно будет использовать предложение sort в вашем поле.

0 голосов
/ 27 февраля 2019

Вы можете использовать запрос функции запрос, чтобы повысить результат на основе соответствия для фильтра (в данном случае это ram по имени).

Следующий запрос должен работать для вас

POST sort_index/_search
{
    "query": {
        "function_score": {
            "query": {
                "match_all": {}
            },
            "boost": "5",
            "functions": [{
                "filter": {
                    "match": {
                        "name": "ram"
                    }
                },
                "random_score": {},
                "weight": 1000
            }],
            "score_mode": "max"
        }
    },
    "sort": [{
        "activity.keyword": {
            "order": "desc"
        }
    }]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...