有没有办法在Elasticsearch-py中一次调用多个查询?

时间:2019-07-26 21:09:13

标签: python elasticsearch scroll

我是Elasticsearch的初学者,遇到了在Elasticsearch中一次为多个查询创建可能的函数/数据提取问题。

我阅读了有关msearch的文章,但同时也了解到使用滚动条时它不兼容?我拥有所有文件。

我将多个查询存储在名为body的变量中,其形式为:

{"fields": ["dates","c_u", "tawgs.db_id"], "query": { "filtered": { "query": { "match": {dates} }, "filter": { "terms": { "tawgs.db_id": products } } } } }

但是我不确定如何将少数几个正文查询实现/操纵到我的单个查询ES pull中:

page=es.search(
        index='docs',
        search_type='scan',
        scroll='2m',
        size=1000,
        body={'fields': ['dates', 'c_u', 'tawgs.db_id'], 'query': {'filtered': {'query': {'match': {'dates': '2019-01-01'}}, 'filter': {'terms': {'tawgs.db_id': products}}}}})

scroll_size = page['hits']['total']
#print ("total size: ", scroll_size)
sid = page['_scroll_id']

f = open('es-output.json','w', encoding="utf-8")

while (scroll_size > 0):
        #print("scrolling...")
        page = es.scroll(scroll_id = sid, scroll = '2m')
        # Update the scroll ID
        sid = page['_scroll_id']
        scroll_size = len(page['hits']['hits'])
        #print ("scroll size: ", scroll_size)
        for doc in page['hits']['hits']:
            json.dump(doc,f)
f.close()

请帮助!预先感谢

0 个答案:

没有答案