我有一个用例,在同一个索引中有两种不同的类型。两种类型都有不同的结构和映射。
我需要使用不同的查询DSL同时查询这两种类型。
如何构建我的查询DSL以同时查询同一索引的多种类型。
我查看了https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-index-multi-type.html的弹性搜索指南,但这里没有正确的解释。根据这个,即使我在我的请求中设置了两种不同的类型:
/index/type1,type2/_search
我将不得不发送相同的查询DSL。
答案 0 :(得分:8)
您需要使用multi-search API和_msearch
端点
curl -XGET localhost:9200/index/_msearch -d '
{"type": "type1"}
{"query" : {"match_all" : {}}, "from" : 0, "size" : 10}
{"type": "type2"}
{"query" : {"match_all" : {}}, "from" : 0, "size" : 10}
'
注意:确保按换行符(包括最后一行)
分隔每一行您将以与请求相同的顺序获得两个回复