1

I have an elasticsearch range query that I'd like to translate into elasticsearch-dsl:

Elasticsearch Python API

{"range": 
    {"@timestamp": 
        {"gte": 1570258800000, 
         "lte": 1571036400000, 
         "format": "epoch_millis"
        }
     }
 }

Elasticsearch-DSL-Py Query?

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

client = Elasticsearch(<connection_details>)

s = Search(using=client, index="my-index") \
    .query("???")

3 Answers 3

6

Try this:

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

client = Elasticsearch(<connection_details>)

s = Search(using=client, index="my-index") \
    .filter('range' ,  **{'@timestamp': {'gte': 1570258800000 , 'lt': 1571036400000, 'format' : 'epoch_millis'}})
Sign up to request clarification or add additional context in comments.

1 Comment

Is it possible to use string values as starting and ending date? do I need to specify the format if so ?
2
s = s.query('range', **{'@timestamp': {'gte': ...}})

Hope this helps

Comments

0

You can also supply the date in string format (YYYY-MM-DD). Here's a snippet

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

client = Elasticsearch()

date_from = '2022-10-01' # Oct 01, 2022
date_to = '2022-10-05' # Oct 05, 2022

s = Search(using=client)
s = s.query('range', **{'published': {'gte': date_from, 'lte': date_to}})

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.