所以,我有myindex
弹性搜索索引,有两种类型type1
和type2
。这两种类型都有两个常见字段name
和description
,如下所示:
{
"name": "",
"description": ""
}
如果我在单个搜索查询中将大小指定为10,我想要来自type1
的5个结果和来自result2
的5个结果?
如果匹配结果来自type1
,则以下查询会为type1
提供10个结果:
curl -XPOST 'localhost:9200/myindex/_search?pretty&pretty' -H 'Content-Type: application/json' -d'
{
"size": 10,
"query": {
"match": {
"name": "xyz"
}
}
}'
我可以在两个不同的查询中执行此操作,如下所示,但我想一次性完成。
curl -XPOST 'localhost:9200/myindex/type1/_search?pretty&pretty' -H 'Content-Type: application/json' -d'
{
"size": 5,
"query": {
"match": {
"name": "xyz"
}
}
}'
curl -XPOST 'localhost:9200/myindex/type2/_search?pretty&pretty' -H 'Content-Type: application/json' -d'
{
"size": 5,
"query": {
"match": {
"name": "xyz"
}
}
}'
答案 0 :(得分:0)
您可以使用multisearch,结果将以两个单独的数组返回。
GET /_msearch --data-binary
{ "index" : "myindex" , "type" : "type1" }
{ "size" : 5, "query" : { "match" : { "name" : "xyz" } } }
{ "index" : "myindex", "type" : "type2" }
{ "size" : 5, "query" : { "match" : { "name" : "xyz" } } }