7.solr学习速成之facet
Facet 介绍

package Facet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.FacetField;
import org.apache.solr.client.solrj.response.FacetField.Count;
import org.apache.solr.client.solrj.response.QueryResponse;
public class SolrFacet {
public static void addIndex(){
HttpSolrClient server = solrServer.getServer();
List<ProductBO> list = new ArrayList<>();
ProductBO bo1 = new ProductBO();
bo1.setId("1001");
bo1.setTitle("27寸曲面显示器");
bo1.setMajor_s("电器");
bo1.setSubMajor_s("显示器");
bo1.setBrand_s("海尔儿");
bo1.setPrice_i(5000);
list.add(bo1);
bo1 = new ProductBO();
bo1.setId("1002");
bo1.setTitle("无敌28寸曲面显示器");
bo1.setMajor_s("无敌电器");
bo1.setSubMajor_s("无敌显示器");
bo1.setBrand_s("无敌海尔儿");
bo1.setPrice_i(6000);
list.add(bo1);
bo1 = new ProductBO();
bo1.setId("1003");
bo1.setTitle("超级28寸曲面显示器");
bo1.setMajor_s("超级电器");
bo1.setSubMajor_s("超级显示器");
bo1.setBrand_s("超级海尔儿");
bo1.setPrice_i(7000);
list.add(bo1);
bo1 = new ProductBO();
bo1.setId("1004");
bo1.setTitle("28寸曲面显示器");
bo1.setMajor_s("电器");
bo1.setSubMajor_s("显示器");
bo1.setBrand_s("海尔儿");
bo1.setPrice_i(7000);
list.add(bo1);
try {
server.addBeans(list);
server.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
} public static void facetQuery(){
HttpSolrClient server = solrServer.getServer();
SolrQuery query = new SolrQuery(); String para = "*:*";
query.setFacet(true);
query.addFacetField(new String[]{"subMajor_s","brand_s"});
query.setFacetLimit(100);//限制facet返回数量
query.setFacetMissing(false);//不统计null的值
query.setFacetMinCount(1);//分组的数据最小为1
query.addFacetQuery("price_i:[5000 TO 6000]");
query.setQuery(para);
QueryResponse queryResponse;
try {
queryResponse = server.query(query);
List<FacetField> list = queryResponse.getFacetFields();
for(FacetField f : list){
System.out.println(f.getName());
System.out.println("-------------------");
List<Count> values = f.getValues();
for(Count c : values){
System.out.println(c.getName() + ":" + c.getCount());
}
System.out.println("===================");
}
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
//addIndex();
facetQuery();
}
}
===================
7.solr学习速成之facet的更多相关文章
- 10.solr学习速成之高亮显示
Solr高亮显示的三种实现 高亮显示在搜索中使用的比较多,比较常用的有三种使用方式,如果要对某field做高亮显示,必须对该field设置stored=true . 第一种是普通的高 ...
- 9.solr学习速成之group
Group与Facet的区别 facet的查询结果主要是分组信息:有什么分组,每个分组包括多少记录:但是分组中有哪些数据是不可知道的,只有进一步搜索. group则类似于关系数据库的g ...
- 8.solr学习速成之FacetPivot
什么是Facet.pivot Facet.pivot就是按照多个维度进行分组查询,是Facet的加强,在实际运用中经常用到,一个典型的例子就是商品目录树 NamedList解释: NamedList ...
- 1.solr学习速成之配置文件
什么是solr Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过H ...
- 2.solr学习速成之安装
1.下载解压solr-5.3.1.tgz [root@205 opt]# tar -zxf solr-5.3.1.tgz -C /opt/module/ 2.将solr-5.3.1/server/so ...
- 13.solr学习速成之IK分词器
IKAnalyzer简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包. IKAnalyzer特性 a. 算法采用“正向迭代最细粒度切分算法”,支持细粒度和最大词长两 ...
- 12.solr学习速成之dataimport
solr除了利用solrj建立索引外,还可以由列式数据库hbase触发器添加索引,自动全量或者增量索引关系数据库数据等. dataimport可以配置从任何关系数据库导入索引 1.将jar包拷贝到to ...
- 11.solr学习速成之MoreLikeThis
Solr相似匹配 在网页搜索或电商产品搜索结果页面,很多时候会看到一个相似文档.相似产品或找相似的链接.Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeT ...
- 6.solr学习速成之multicore查询
查询关联多个core 再新建一个core 向每个core添加索引,修改 final static String SOLR_URL = "http://localhost:8080/solr/ ...
随机推荐
- Qt中切换窗口功能的实现
两条语句就能够实现了: this->newNC.setWindowFlags(Qt::WindowStaysOnTopHint); this->newNC.show(); mark一下,防 ...
- LeetCode OJ:Missing Number (丢失的数)
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...
- Report: Disappearing Wetlands Put Planet Life at Risk
A new report warns that wetlands are disappearing three times faster than the world’s forests, with ...
- PostgreSQL老司机博客 经常翻翻收获不小
德歌:https://github.com/digoal/blog/blob/master/README.md 唐成:http://blog.osdba.net/525.html 后面持续更新.../ ...
- Some Interview Questions About Python
一大波超链接即将袭来 Django认证流程 Python实现阶乘 Python文件处理 Python统计日志文件IP出现次数 JSON数据解析 JSON数据解析2 买卖股票的最佳时期 读取一个大文件比 ...
- 谈谈Java基础数据类型
Java的基本数据类型 类型 意义 取值 boolean 布尔值 true或false byte 8位有符号整型 -128~127 short 16位有符号整型 -pow(2,15)~pow(2,15 ...
- iOS编译集成linux开源c库的一些记录
最近一个iOS项目需要使用一些Linux下面的开源c库,说是Linux的其实是跨平台的,各种Unix系统都有支持.理论上iOS来自MacOS,而MacOS其实是一种兼容的Unix系统,所以这些库应该也 ...
- I.MX6 PHY fixup 调用流程 hacking
/********************************************************************************** * I.MX6 PHY fixu ...
- NOIP模拟题 友好国度
题目大意 给定一棵树,每个点有点权,求有多少组点对满足两点简单路径上的所有点点权的$gcd=1$. $n,val_i\leq 10^5$ 题解 考虑设$G_i$表示简单路径上所有点点权均为$i$的倍数 ...
- 剑指offer-第四章解决面试题思路(复杂链表的复制)
题目:请写一个函数clone(ComplexListNode pHead),实现复杂链表的复制. 复杂链表的数据结构如下:public class ComplexListNode{int m_nVal ...