Elasticsearch. Поиск данных по текущему месяцу

#elasticsearch

#elasticsearch

Вопрос:

У меня есть следующее тело

 body = {
                "size": 100,
                  "query": {
                    "bool": {
                      "filter": [
                        {
                          "term": {
                            "some_id_1": some_id_1
                          }
                        },
                        {
                          "term": {
                            "some_id_2": some_id_2
                          }
                        },
                        {
                          "term": {
                            "some_id_2": some_id_2
                          }
                        },
                        {
                          "terms": {
                            "some_strings": "a,b,c"
                          }
                        },
                        {
                          "term": {
                              "created_at": dt.now().strftime("%Y-%m-%d")
                          }
                        }
                      ]
                    }
                  }
                }
  

Это приведет к поиску всех записей по условию в term для dt.now().

Вопрос: Как я могу выполнить поиск по всем документам за текущий месяц?

Буду благодарен за помощь.

Ответ №1:

Вместо этого вы можете использовать range запрос с некоторой математикой даты, например:

 {
   "range": {
      "created_at": {
        "gte": "now/M"
      }
   }
}
  

Будут возвращены все документы, created_at поле которых относится к первому числу этого месяца или позже.