对于实时使用,最好的解决方案是在查询后使用搜索。您只需要一个日期字段,以及另一个唯一标识文档的
_id字段-
一个字段或一个
_uid字段就足够了。尝试类似的事情,在我的示例中,我想提取属于一个用户的所有文档-在我的示例中,用户字段具有
keyworddatatype:
from elasticsearch import Elasticsearches = Elasticsearch()es_index = "your_index_name"documento = "your_doc_type"user = "Francesco Totti"body2 = { "query": { "term" : { "user" : user } } }res = es.count(index=es_index, doc_type=documento, body= body2)size = res['count']body = { "size": 10, "query": { "term" : { "user" : user } }, "sort": [ {"date": "asc"}, {"_uid": "desc"} ] }result = es.search(index=es_index, doc_type=documento, body= body)bookmark = [result['hits']['hits'][-1]['sort'][0], str(result['hits']['hits'][-1]['sort'][1]) ]body1 = {"size": 10, "query": { "term" : { "user" : user } }, "search_after": bookmark, "sort": [ {"date": "asc"}, {"_uid": "desc"} ] }while len(result['hits']['hits']) < size: res =es.search(index=es_index, doc_type=documento, body= body1) for el in res['hits']['hits']: result['hits']['hits'].append( el ) bookmark = [res['hits']['hits'][-1]['sort'][0], str(result['hits']['hits'][-1]['sort'][1]) ] body1 = {"size": 10, "query": { "term" : { "user" : user } }, "search_after": bookmark, "sort": [ {"date": "asc"}, {"_uid": "desc"} ] }然后,您将找到附加到
resultvar的所有文档
如果您想在此处使用
scroll query-doc
:
from elasticsearch import Elasticsearch, helperses = Elasticsearch()es_index = "your_index_name"documento = "your_doc_type"user = "Francesco Totti"body = { "query": { "term" : { "user" : user } } }res = helpers.scan( client = es, scroll = '2m', query = body, index = es_index)for i in res: print(i)


