gpt4 book ai didi

elasticsearch - Elasticsearch Multi Search仅返回1组结果

转载 作者:行者123 更新时间:2023-12-02 22:19:40 25 4
gpt4 key购买 nike

我试图在一个HTTP请求中从Elasticsearch返回多个“存储桶”结果。

我正在使用_msearch API。

我正在使用以下查询:

POST /_msearch

{"index" : "[INDEXNAME]", "type":"post"}
{"query" : {"match" : {"post_type":"team-member"}}, "from" : 0, "size" : 10}
{"index" : "[INDEXNAME]", "type": "post"}
{"query" : {"match" : {"post_type": "article"}}, "from" : 0, "size" : 10}

查询执行没有错误,但是结果只返回一个对象,看起来应该是两个对象(一个用于10个团队成员,一个用于10个文章):
    {
"responses": [
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 4,
"successful": 4,
"failed": 0
},
"hits": {
"total": 191,
"max_score": 3.825032,
"hits": [
{...}
]
}
}, // second query should be here, no?
]
}

我的查询构造错误吗,还是我误解了它应该如何工作?

最佳答案

_msearch请求的格式必须遵循 bulk API format。它必须看起来像这样:

header\n
body\n
header\n
body\n

header 部分包括要搜索的一个或多个索引,要搜索的可选(映射)类型, search_typepreferencerouting。该正文包含典型的搜索正文请求(包括 queryaggregationsfromsize等)。

注意:数据的最后一行必须以换行符 \n结尾。

确保查询遵循这种格式(根据您的代码示例,具体取决于环境,因为您在 POST /_msearch之后添加了两行,所以查询可能会或可能不会起作用;您应该只添加一行)。如果 responses数组只有一个结果,那么就您而言,最后一个查询被以某种方式丢弃-再次检查其格式。

关于elasticsearch - Elasticsearch Multi Search仅返回1组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36549662/

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