【发布时间】:2017-07-12 09:43:42
【问题描述】:
如果 userId 为 null ,我想去掉 .withQuery(QueryBuilders.matchQuery("createdBy",userId)) 这个条件,如何根据我传递的参数动态实现搜索。
public <T> List<T> search(String index, String type, String tenantId ,String userId, String queryString, Class<T> clzz){
log.debug("==========search==========");
String allField = "_all";
MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(queryString, allField);
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withIndices(index)
.withTypes(type)
.withQuery(multiMatchQueryBuilder)
.withQuery(QueryBuilders.matchQuery("tenantId",tenantId))
.withQuery(QueryBuilders.matchQuery("createdBy",userId))
.build();
List<T> list =
operations.queryForPage(searchQuery,clzz).getContent();
return list;
}
【问题讨论】:
标签: search spring-data-elasticsearch