Улучшение производительности Elasticsearch существует запрос - PullRequest
0 голосов
/ 21 марта 2019

У меня есть следующий запрос, который находит записи, которые не содержат ни одного из следующих полей: timestamp_login, timestamp_logout, timestamp_signup и группируются по user_city.

{
  "query": {
    "bool": {
      "must": [],
      "must_not": [
        {
          "exists": {
            "field": "timestamp_login"
          }
        },
        {
          "exists": {
            "field": "timestamp_logout"
          }
        },
        {
          "exists": {
            "field": "timestamp_signup"
          }
        }
      ]
    }
  },
  "aggs": {
    "group_by_item": {
      "terms": {
        "script": "doc['user_city.keyword'].value?.toLowerCase()",
        "size": 10,
        "order": {
          "_count": "desc"
        }
      }
    },
    "distinct_terms": {
      "cardinality": {
        "script": "doc['user_city.keyword'].value?.toLowerCase()"
      }
    }
  },
  "size": 0
}

Однакозапрос часто истекает.Есть ли более эффективный способ получения записей, где отсутствует список полей?Также я использую ES 5.6.

Спасибо за вашу помощь!

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