Elasticsearch是一個開源的搜索引擎,它的主要目的是提供快速、實時、可擴展的全文搜索服務。
當我們在進行搜索時,可能需要按照日期來進行范圍查詢。在ES中,我們可以使用Range Query來實現這一查詢。
GET /my_index/_search { "query": { "range": { "date_field": { "gte": "2022-01-01", "lte": "2022-01-31" } } } }
上面的例子表示查詢date_field大于等于2022年1月1日并且小于等于2022年1月31日的所有文檔。其中,gte表示大于等于,lte表示小于等于。
如果我們要查詢7天以內的文檔:
GET /my_index/_search { "query": { "range": { "date_field": { "gte": "now-7d/d", "lte": "now/d" } } } }
上面的例子中,now表示當前時間,7d表示7天,/d表示天的時間單位。
總的來說,ES中的日期范圍查詢非常方便,在實際應用中可以靈活使用。