Можете ли вы заказать эластичный результат поискового запроса?Принудительно до конца, если в поле есть True - PullRequest
0 голосов
/ 02 мая 2019

Я выполняю запрос ES

data = es.search(index='indexName', size=10000,body={"query": {"exists": {"field": "field_name"}}})

Но я хочу, чтобы результаты переупорядочивались, если в нем есть другое поле с именем 'reviewed', установленное как True.

Если оноПравда это должно быть перенесено до конца.Запрос подается в таблицу.

item    reviewed
-----------------
apple     [x]   <----check boxes
pear      [ ]
banana    [ ]

[ submit ]

, затем при перезагрузке

item    reviewed
-----------------
pear      [ ]
banana    [ ]
apple     [ ]

[ submit ]

1 Ответ

1 голос
/ 02 мая 2019

Что вам нужно сделать, это просто увеличить документы, для которых reviewed установлено значение false, с помощью предложения bool / should, например:

{
  "query": {
    "bool": {
      "must": {
        "exists": {
          "field": "field_name"
        }
      },
      "should": {
        "term": {
          "reviewed": false
        }
      }
    }
  }
}

Что произойдет, это то, что все документы, имеющиеполе с именем field_name будет сопоставлено, но все поля, для которых reviewed имеет значение false, будут увеличены по сравнению с полями, для которых reviewed установлено в true.

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