gpt4 book ai didi

python - 使用 Python 请求查询 ElasticSearch 无法正常工作

转载 作者:太空狗 更新时间:2023-10-29 20:40:55 25 4
gpt4 key购买 nike

我正在尝试使用 Elastic Search 引擎在 mongodb 数据库上进行全文搜索,但我遇到了一个问题:无论我提供什么搜索词(或者如果我使用 query1 或 query2),引擎总是返回同样的结果。我认为问题出在我提出请求的方式上,但我不知道如何解决。

代码如下:

def search(search_term):
query1 = {
"fuzzy" : {
"art_text" : {
"value" : search_term,
"boost" : 1.0,
"min_similarity" : 0.5,
"prefix_length" : 0
}
},
"filter": {
"range" : {
"published": {
"from" : "20130409T000000",
"to": "20130410T235959"
}
}
}
}
query2 = {
"match_phrase": { "art_text": search_term }
}

es_query = json.dumps(query1)
uri = 'http://localhost:9200/newsidx/_search'
r = requests.get(uri, params=es_query)
results = json.loads( r.text )
data = [res['_source']['api_id'] for res in results['hits']['hits'] ]
print "results: %d" % len(data)
pprint(data)

最佳答案

params 参数不适用于发送的数据。如果您尝试将数据发送到服务器,您应该专门使用数据参数。如果您尝试发送查询参数,那么您不应该对它们进行 JSON 编码,而只是将其作为字典提供给 params。

我怀疑您的第一个请求应该如下:

r = requests.get(uri, data=es_query)

在有人给我投反对票之前,是的,HTTP/1.1 规范允许使用 GET 请求发送数据,是的,请求确实支持它。

关于python - 使用 Python 请求查询 ElasticSearch 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com