python 操作 elasticsearch-7.0.2 遇到的问题

错误一:TypeError: search() got an unexpected keyword argument 'doc_type',得到不预期外的参数

解决方法:elasticsearch7里不用文档类型,所以去掉 doc_type='credit_data'

错误二:RequestError(400, 'illegal_argument_exception', 'request [/user_info/_search] contains unrecognized parameter: [query]'),包含不可识别的参数

解决方法:params为URL后添加的参数,,body为查询语句

Python操作ES查询时,如search操作,源码:search(self, index=None, doc_type=None, body=None, params=None)

其中index,doc_type,body都好理解,与平时查询时的一样,body为查询语句,

params即在URL后添加的参数,使用 curl 查询时URL参数如:?size=0   但在python中使用时赋值方式需要将其设为字典,如:params={“size":0},否则查询时会无法解析

dsl = {
  'query': {
    'match': {
      'title': 'xxxtitle'
        }
      }
  }

es = Elasticsearch()
result = es.search(index='news',  body=dsl,params={"size":0})
print(json.dumps(result, indent=2, ensure_ascii=False))

原文地址:https://www.cnblogs.com/liuchunxiao83/p/11209512.html