一,数据展示疑惑
1,过滤
在查询的时候,会带着过滤条件进行查询,而且每次前端请求后,由于后端获得的条件不同,每次结果也不一样,然后前端进行渲染展示。
2,规格查询疑惑
过滤代码
//规格过滤实现: 为了区分出来是规格,前台传过来的时候前面加一个标志 如:spec_网络=联通3G&
for (Map.Entry<String, String> entry : searchMap.entrySet()) {
String key = entry.getKey();
//如果key以spec开始,表示规格筛选查询
// 参数一是 查询的域,我们选不分词哪个域, 第二个是查询的条件
if (key.startsWith("spec")) {
String value = entry.getValue();
//spec_网络 spec_要去前五个
boolQueryBuilder.must(QueryBuilders.termQuery("specMap." + key.substring(5) + ".keyword", value));
}
}
有关查询看Es实战
这里的这个specMap类型为Map(Stirng,set)域,其实是分别去根据key得到对应的域,然后去根据值查询符合的数据,最后返回给前端。