首页 > 解决方案 > Elasticsearch - 在无法识别的 url 中指定参数

问题描述

我是弹性搜索的新手,实际上我正在尝试使用 REST API 从弹性中检索一些数据。

URL = "http://localhost:9200/houses*/_search"

filter_path = 'hits.hits._source'
city = "Las Vegas"
size = 10
sort = 'review_count:desc'
PARAMS = {'filter_path': filter_path, 'city': city  'size': size, 'sort': sort}

print(requests.get(url=URL, params=PARAMS).text)
request = requests.get(url=URL, params=PARAMS)

data = request.json()

我收到以下错误,说城市未被识别为参数,但它是我的数据字段之一。

{'error': {'root_cause': [{'type': 'illegal_argument_exception', 'reason': 'request [/houses*/_search] contains unrecognized parameter: [city]'}], 'type': 'illegal_argument_exception', 'reason': 'request [/houses*/_search] contains unrecognized parameter: [city]'}, 'status': 400}

如果您弄清楚它为什么不起作用,我会很高兴:)

谢谢阅读。

标签: resthttpelasticsearchgetrequest

解决方案


问题是city参数。如果你想在你的 URL 中发送一个查询,你需要通过q参数来做,像这样:

filter_path = 'hits.hits._source'
query = 'city:"Las Vegas"'
size = 10
sort = 'review_count:desc'
PARAMS = {'filter_path': filter_path, 'q': query  'size': size, 'sort': sort}

其余的看起来不错,应该可以工作。


推荐阅读