类型错误:search() 在弹性搜索版本 5.6 中'doc_type'意外的关键字参数



我想从弹性搜索中读取特定索引和特定类型的文档。我构造查询:

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(

您可以通过此命令检查当前的弹性版本 - 点冻结

最新更新