社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

ElasticSearch:使用python从索引中检索所有文档

Nakeuh • 5 年前 • 466 次点击  

我需要从Python中的ElasticSearch中检索文档。

所以我写了这个小代码:

es = Elasticsearch(
            myHost,
            port=myPort,
            scheme="http")

request = '''{"query": {"match_all": {}}}'''

results = es.search(index=myIndex, body=request)['hits']['hits']

print(len(results))
>> 10

问题是它只从我的索引中返回10个文档,而我希望只有几百个。如何从索引中检索所有文档?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30715
 
466 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Shinra tensei
Reply   •   1 楼
Shinra tensei    5 年前

有几种方法可以解决这个问题。

如果知道索引中的最大文档量,可以设置 size 搜索的参数为该数字或更多。例如,如果您知道您将拥有少于100个,则可以通过这种方式检索它们 results = es.search(index=myIndex, body=request, size=100)['hits']['hits']

如果你不知道那个号码,而你仍然想要所有的号码,你必须使用 scan 函数,而不是 search 功能。这方面的文件是 here