最近碰上一个麻烦的问题,要搜索多个索引,查了查资料,下面这些是比较常见的:
/index1,index2/_search
/*1,*2/_search
/index*/_search
/all/_search
另外还有别名搜索,全部取一个别名
但是我这问题有点不同,我要搜索的索引特别多,而且还没有规律可循,既不能用别名,索引太多又不能全堆到url里,毕竟url长度有限
这里找到了一个通过multi search方式解决的思路,可以把索引名字放到body里
multi search不用_search而是_msearch,这种方式需要写一个json,格式大概位
header\n
body\n
就是两行json,中间不能有换行,第一行大概这样
{"index":"index1,index2"}
也就是原来url里的内容,给它变成json
第二行就是原来的请求体json,但是同样不能有换行,否则就乱了
最后需要换行一次,否则请求会报错
_msearch
整个json
返回基本同_search