Получение документов в определенном диапазоне часов из поля даты - PullRequest
1 голос
/ 20 июня 2019

У меня есть индекс с отображением в виде:

        "mappings": {
                    "created_time" :{
                        "type": "date"
                    },
                    "user_id": {
                        "type": "keyword",
                    }
                }
            }
        }

Я хочу найти всех пользователей, которые были созданы в пределах определенного часового диапазона, скажем, 10-12 вечера.

Iя не уверен, как это сделать, я читал о всех видах агрегаций, и, похоже, ничего не подходит.

1 Ответ

1 голос
/ 20 июня 2019

Вы хотите использовать то, что называется скрипт запроса .

Это будет выглядеть так:

query: {
      bool: {
          "filter": {
              "script": {
                   "script": {
                      "source": "doc['created_time'].getHourOfDay() >= min && doc['created_time'].getHourOfDay() < max",
                      "lang": "expression",
                      "params": {
                        "min": 10,
                        "max": 12
                      }
                   }
             }
       }
}

Это даст вам необходимые хиты.

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