前2篇介绍了Elasticsearch的安装和工具类,虽然这样能用,但是还留有几个问题,对此有些困扰.
- 多条件查询
工具类里面有个get精确查询和search搜索,但是那个只用来查询单一条件,如果查询界面上需要查询多个条件,那这个显然不够用.在网络上搜索了半天,发现没有比较好的java写的api参考,觉得有些奇怪,难道这种场景不常见吗?
官方文档中,有类似搜索api,比如MultiSearch ,但感觉有些奇怪.
一般常见的需求是, 开发者不知道具体查询条件有多少个,因此,不能在工具类里面写死查询条件个数.寻找半天,发现有个Must 查询,仔细一看,发现能够满足这样的需求.代码如下:
/**
* @Title: getSearchResponse
* @Description: TODO(查询数据,多条件查询,有分页)
* @param: @throws Exception
* @return: void
* @throws
*/
public static Map<String, Object> getSearchResponse(String indexName, String type, Map<String, Object> requestParams) throws Exception{
Map<String, Object> resultMap = new HashMap<String, Object>();
Map<String, String> queryCondition =