Elasticsearch Python API 导致简单查询"search() missing 1 required positional argument"



我拼命地试图在Elasticsearch上执行一个简单的搜索操作,但自几个小时以来就失败了。这是我的代码:

res = es.search(index="people", doc_type="test", body={"query":{"match":{"name": "john"}}})

我在Internet上看到了很多次,但是我总是会出错,并且不知道我的代码片段有什么问题。

Traceback (most recent call last):
  File "./es_request.py", line 14, in <module>
    res = es.search(index="people", doc_type="test", body={"query":{"match":{"name": "john"}}})
  File "/usr/local/lib/python3.4/dist-packages/pyelasticsearch/client.py", line 93, in decorate
    return func(*args, query_params=query_params, **kwargs)
TypeError: search() missing 1 required positional argument: 'query'

我必须在哪里编写所需的"查询"?我正在尝试执行搜索名称和姓氏。

search库中的CC_1方法(您正在使用)调用查询参数query,而不是body

 query = {"query": {"match": {"name": "john"}}}
 es.search(index="people", doc_type="test", query=query)
 es.search(query, index="people", doc_type="test")  # you can also do this

我认为您打算使用官方的elasticsearch库,您的代码可以很好地工作(添加更多混乱,其文档位于elasticsearch-py.readthedocs.io)。

两个库导出相同的模块名称,因此当您使用错误的库时,有时有点可以工作。这不是巧合,请参阅有关其历史和差异的这篇文章。安装官方客户很容易,因为:

pip uninstall pyelasticsearch
pip install elasticsearch

相关内容

  • 没有找到相关文章

最新更新