Эластичная поисковая случайная оценка с фильтрами - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть ситуация, использующая ES 6.5, где я могу выполнить bool или random_score, но не оба одновременно.Вот один из этих потенциальных запросов:

{
  "from": 0,
  "size": 50,
  "query": {
    "function_score": {
      "random_score": {
        "seed": 10,
        "field": "_seq_no"
      }
    },
    "bool": {
      "filter": [
        {
          "terms": {
            "primary_category": [
              "foobar"
            ]
          }
        },
        {
          "terms": {
            "primary_type": [
              "barbaz"
            ]
          }
        }
      ]
    }
  }
}

Если бы мне пришлось удалить либо блок function_score, либо блок bool, запрос работает, но в комбинации он не работает:

[function_score] malformed query, expected [END_OBJECT] but found [FIELD_NAME]

Я что-то упустил из примера по адресу: https://www.elastic.co/guide/en/elasticsearch/reference/6.2/query-dsl-function-score-query.html#function-random

Все, что я хочу сделать, это "случайным образом отсортировать" мои результаты предсказуемым образом, который будет работать черезнумерация страниц и т. д. На самом деле я просто пытаюсь отобразить отфильтрованные результаты с высокой дисперсией, так как любой вид стандартной сортировки создаст шаблоны в результате, которого я пытаюсь избежать.

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

1 Ответ

0 голосов
/ 19 ноября 2018

Я понял это.function_score должен быть частью блока bool.

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