gpt4 book ai didi

python - Elasticsearch 多搜索未返回正确数量的结果

转载 作者:太空狗 更新时间:2023-10-29 22:10:57 24 4
gpt4 key购买 nike

我正在使用 Elasticsearch 的 multi search通过 python library 运行查询列表.它似乎在工作......主要是。问题是,如果我发送 200 个查询,它会返回 100 个结果(没有错误)。我试过运行 20 个查询,仍然得到 10 个结果。出于某种原因,它似乎总是只返回一半的查询。这也意味着我不知道结果与哪个查询相关。

所有查询都单独工作,但会花费太长时间。文档中没有提到响应可能不包含相同数量的查询,所以我不确定该去哪里。我已经尽可能多地进入代码,因为 python 库会让我验证所有的查询都被发送了,它似乎按预期工作。

感谢您向正确方向提供的任何帮助或插入!

编辑:这是我使用的查询示例。

   {  
"filter":{
"and":[
{
"not":{
"term":{
"uuid":"60507f9e-01c1-11e5-a369-34363bd16ec4"
}
}
},
{
"term":{
"brand_id":22212
}
}
]
},
"query":{
"bool":{
"minimum_should_match":1,
"should":[
{
"match":{
"name":{
"query":"spork",
"boost":3
}
}
},
{
"match":{
"categories":{
"slop":10,
"type":"phrase",
"query":"household plates, bowls, cups & flatware"
}
}
}
],
"must_not":[

],
"must":[
{
"match":{
"name_analyzed":{
"boost":4,
"query":"spork",
"type":"phrase",
"slop":15
}
}
}
]
}
}
}

根据 python elasticsearch 文档,我创建了一个列表,其中包含许多我想运行和执行的此类查询:

elasticsearch.msearch(list_of_search_queries)

最佳答案

哇!那很烦人。

所以 search 和 msearch 之间的警告是 elasticsearch 期望每个查询有两行。第一行表示索引(如果您已经指定它可以留空),第二行是您的实际查询。

因此,在创建我的查询列表时,我只是将 {} 附加在它之前:

list_of_queries = []
for thing in list_of_things:
list_of_queries.append({})
list_of_queries.append(thing.get_query())

然后就可以了!

关于python - Elasticsearch 多搜索未返回正确数量的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977040/

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