我试图使用Python客户端获取所有索引文档,但结果只显示了第一个文档,这是我的Python代码:
res = es.search(index="92c603b3-8173-4d7a-9aca-f8c115ff5a18", doc_type="doc", body = {
'size' : 10000,
'query': {
'match_all' : {}
}
})
print("%d documents found" % res['hits']['total'])
data = [doc for doc in res['hits']['hits']]
for doc in data:
print(doc)
return "%s %s %s" % (doc['_id'], doc['_source']['0'], doc['_source']['5'])
5条答案
按热度按时间czfnxgou1#
尝试用“_DOC”代替“DOC”
nnsrf1az2#
默认情况下,ElasticSearch仅检索10个文档。您可以更改此行为-doc here。分页的最佳实践是
search after query
和scroll query
。这取决于你的需要。请阅读此答案ElasticSearch没有提供页面大小较大的数据要显示所有结果,请执行以下操作:
px9o7tmv3#
您可以尝试执行以下查询。它会退还所有的文件。
woobm2wo4#
您还可以使用
elasticsearch_dsl
及其搜索API,该API允许您通过scan
方法迭代所有文档。py49o6xq5#
我没有提到,如果您只是添加数据,则必须刷新索引。使用以下命令: