Solr之分组查询facet 太过爱你忘了你带给我的痛 2022-08-02 00:14 316阅读 0赞 用户查询之后通过点击分组,能继续缩小搜索范围,来定位自己想要的内容,效果图入下: ![Solr 中使用分组查询facet,强化你的搜索用户体验][Solr _facet] **Solrj 代码** /** * 一个演示方法,根据查询关键词查询结果,连带查结果对应的栏目分组情况 。 * * @param kw 搜索词 */ public static void query(String kw) { SolrQuery query = new SolrQuery(); query.setQuery("title:" + kw); // 开启facet查询 query.setFacet(true) // 设置没有结果的栏目不显示 .setFacetMinCount(1) // 设置根据栏目id进行facet查询 .addFacetField("catalog_id"); try { QueryResponse rsp = solrServer4Article.query(query); // 搜索的结果 SolrDocumentList docs = rsp.getResults(); // 搜索结果对应的分组 List<Count> list = rsp.getFacetField("catalog_id").getValues(); for (Count count : list) { System.out.println(count.getName() + "->" + count.getCount()); } } catch (Exception e) { log.error("从solr根据Page查询分页文档时遇到错误", e); } } **输出结果** 10 ->25 1 ->1 5 ->1 我的搜索词是“mysql”,说明对于搜索结果,栏目10(mysql)有结果25条,栏目1(系列)有结果1条,栏目5(solr)有1条,那么这时你就可以根据这个结果,继续缩小你的搜索范围了。 **相关说明** 有时候需要设置多个分组,那么只需要针对不同的属性增加.addFacetField("属性名");即可,如在京东上搜“手机” ![Solr 中使用分组查询facet,强化你的搜索用户体验][Solr _facet 1] 转至:[http://www.devnote.cn/article/301.html][http_www.devnote.cn_article_301.html] [Solr _facet]: /images/20220731/1bfbaf6d90e94c6595afab3f74a05f86.png [Solr _facet 1]: /images/20220731/64360ba6c4a14ddfb3f3bf7d23ae4d5c.png [http_www.devnote.cn_article_301.html]: http://www.devnote.cn/article/301.html
还没有评论,来说两句吧...