畅购商城-疑惑点记录

一,数据展示疑惑

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得到对应的域,然后去根据值查询符合的数据,最后返回给前端。

上一篇:Python教程:一篇文件教你py文件打包成exe


下一篇:PHP 单例模式代码片段