我是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()
请帮助!预先感谢