首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >elasticsearch-py扫描并滚动以返回所有文档

elasticsearch-py扫描并滚动以返回所有文档
EN

Stack Overflow用户
提问于 2014-04-08 03:45:44
回答 2查看 27.3K关注 0票数 22

我正在使用elasticsearch-py连接到我的ES数据库,该数据库包含300多万个文档。我希望返回所有文档,这样我就可以提取数据并将其写入csv。使用下面的代码,我可以轻松地为10个文档(默认返回)实现这一点。

es=Elasticsearch("glycerin")
query={"query" : {"match_all" : {}}}
response= es.search(index="_all", doc_type="patent", body=query)

for hit in response["hits"]["hits"]:
  print hit

不幸的是,当我尝试实现扫描和滚动以便获取所有文档时,我遇到了问题。我尝试了两种不同的方法,但都没有成功。

方法1:

scanResp= es.search(index="_all", doc_type="patent", body=query, search_type="scan", scroll="10m")  
scrollId= scanResp['_scroll_id']

response= es.scroll(scroll_id=scrollId, scroll= "10m")
print response

scroll/之后,它给出滚动id,然后以?scroll=10m (Caused by <class 'httplib.BadStatusLine'>: ''))结束

方法二:

query={"query" : {"match_all" : {}}}
scanResp= helpers.scan(client= es, query=query, scroll= "10m", index="", doc_type="patent", timeout="10m")

for resp in scanResp:
    print "Hiya"

如果我在for循环之前打印出scanResp,我会得到<generator object scan at 0x108723dc0>。正因为如此,我相对确定我弄乱了我的卷轴,但我不确定在哪里或如何修复它。

结果:

同样,在scroll/之后,它提供滚动id,然后以?scroll=10m (Caused by <class 'httplib.BadStatusLine'>: ''))结束

我试着增加传输类的最大重试次数,但这并没有什么不同。我非常感谢任何关于如何解决这个问题的见解。

注意: My ES位于同一网络上的远程桌面上。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22921629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档