Elasti c роль координирующего узла поиска - сложные агрегации - PullRequest
1 голос
/ 29 марта 2020

Я понял, что координатный узел передает запрос на поиск и собирает результаты, полученные от узлов данных, используя «запрос, затем этап выборки».

Делает ли он это за одну итерацию: «запрос, затем этап выборки» или поиск запрос может иметь несколько итераций запроса, затем выбирать фазы?

Скажем, принимая сложный фильтр запроса, взятого из Elasti c Сложный сценарий поиска (кредиты: Val, Спасибо @Val), будет ли это включать несколько итераций запроса, а затем получить фазы? какие шаги координирующий узел делает для ответа на этот запрос

{
  "query": {
    "filtered": {
      "query": {
        "match": {
          "product_name": "xxx"
        }
      },
      "filter": {
        "bool": {
          "must": [
            {
              "range": {
                "price": {
                  "gte": 20,
                  "lte": 170
                }
              }
            },
            {
              "term": {
                "availability": "availability_status"
              }
            },
            {
              "term": {
                "user": 1
              }
            }
          ]
        }
      }
    }
  }
}

1 Ответ

0 голосов
/ 31 марта 2020

Есть несколько подсказок. Размещать его здесь для кого-то, если ему интересно

https://discuss.elastic.co/t/elastic-search-coordinating-node-role-complex-aggregations/225622/5

The details change as various things are optimised and evolve.
There are a number of "it depends" e.g. the "canMatch" pre-flight phase will not run if there's insufficient numbers of shards being queried or custom search routing is used or DFS is used.
Cross-cluster-search is another consideration.

Here's probably a good place to start if you're curious.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...