Несколько и запрос с подзапросом.Elasticsearch - PullRequest
0 голосов
/ 19 марта 2019

Когда у меня появляется следующий запрос, я получаю сообщение об ошибке

{
  "query": {
    "bool": {
      "must": [
        { "match": { "context.branch": "17270" }},
        { "match": { "context.version": "12.0.R2" }},
        { "match": { "run_uid": "AAA / SSS / AA-ContextMenu / 3507031CR3.exe"}},
        {
          "range": {
            "epoch": {
              "lte": 1510340778.78
            }
          }
        }
      ]
    }
  }
}

Отображения:

{
                "mappings": {
                    "_doc": {
                        "properties": {
                            "partition_id": {"type": "integer"},
                            "report_id": {"type": "integer"},
                            "title": {"type": "text"},
                            "epoch": {"type": "date",
                                      "format": "epoch_millis"},
                            "context": {
                                "dynamic": True,
                                "properties": {}
                            },
                            "run_uid": {"type": "text"},
                            "run_id": {"type": "integer"},
                            "build_name": {"type": "text"},
                            "status_id": {"type": "integer"},
                            "rep_custom_id": {"type": "text"},
                            "created": {
                                "type": "date",
                                "format": "strict_date_optional_time||epoch_millis"
                            }
                        }
                    }
                }
            }

Не могли бы вы сказать мне, почему я все еще вижу другой run_uid?Работают следующие параметры:

    { "match": { "context.branch": "17270" }},
    { "match": { "context.version": "12.0.R2" }}

Но {"match": {"run_uid": "AAA / SSS / AA-ContextMenu / 3507031CR3.exe"} не работает.Он возвращает мне случайные run_uids, но с правильными "context.branch" и "context.version"

Например, у меня есть следующие данные:

run_id context      created

4      blabala132   2019-03-20 08:00:00.0000+0300
5      blabala132   2019-03-20 07:00:00.0000+0300
6      blabala132   2019-03-20 06:00:00.0000+0300
7      blabala132   2019-03-20 05:00:00.0000+0300
8      blabala132   2019-03-20 09:00:00.0000+0300
9      blabala133   2019-03-20 07:00:00.0000+0300

Входные данные: run_id 4

Результат выглядит следующим образом:

5      blabala132   2019-03-20 07:00:00.0000+0300
6      blabala132   2019-03-20 06:00:00.0000+0300
7      blabala132   2019-03-20 05:00:00.0000+0300

Каждые данные меньше 2019-03-20 08: 00: 00.0000 + 0300 (что относится к run_id 4) и контекст одинаков.

8      blabala132   2019-03-20 09:00:00.0000+0300

Вышеупомянутая строка не является результатом, так как данные gt 2019-03-20 08: 00: 00.0000 + 0300 (который принадлежит run_id 4)

9      blabala133   2019-03-20 07:00:00.0000+0300

Theвышеупомянутая строка не является результатом, так как контекст отличается от blabala132 (который принадлежит run_id 4)

1 Ответ

1 голос
/ 19 марта 2019

Прежде всего, ваша структура JSON неверна. После этого ваш синтаксис запроса также будет неверным. Это должно быть как:

 {
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "run_id": 5000
          }
        },
        {
          "term": {
            "context": "{\"branch,keyword\": \"TRT-26878\",\"version\": \"12.0.R2\"}"
          }
        },
        {
          "range": {
            "created.keyword": {
              "lte": 1510047258.826,
              "boost": 2
            }
          }
        }
      ],
      "minimum_should_match": 1,
      "boost": 1
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...