我想从弹性搜索中读取特定索引和特定类型的文档。我构造查询:
es.search(index="document_index, doc_type="document_type", body={"query": {"match_all": {}}})['hits']['total']
我收到错误TypeError: search() got an unexpected keyword argument 'doc_type'
。我浏览了下面给出的几个链接来寻找解决方案,但主要答案是降级 ES 版本。但我们的要求是保留 ES 版本 5.6。
- https://elasticsearch-py.readthedocs.io/en/master/
- https://towardsdatascience.com/getting-started-with-elasticsearch-in-python-c3598e718380
- https://marcobonzanini.com/2015/02/02/how-to-query-elasticsearch-with-python/
还有更多
是否有其他方法可以提及文档类型?
看来你的 elasticsearch python 客户端版本高于 v5.6
.使用doc_type
兼容版本删除现有版本,例如 5.5.3
删除:pip uninstall elasticsearch
,然后安装pip install elasticsearch==5.5.3
注意:我建议这样做,因为 elasticsearch 不再支持每个索引的多个文档类型doc_type
没有其他类型。由于版本不同,它给出了错误
昨天我遇到了同样的问题 您需要检查 elasticsearch 版本,或者您可以通过以下命令直接下载版本:sudo pip install elasticsearch==version(例如 6.3.1(
您可以通过此命令检查当前的弹性版本 - 点冻结