Solr Facet
一、Facet介绍
solr facet 是solr搜索的一大特色,facet不好翻译,有说是垂直搜索,有说是分片搜索,但都不是很好,还是懒得翻译了,就叫facet ,具体功能看下面的例子意会吧。
比如你上淘宝,输入“笔记本”进行搜索,就会出现品牌分类,价格范围等分类,这个就叫facet了。这个例子也许好不是那么准确的描述facet,不过基本上就是这个意思。对输入关键字后搜索出来的结果再进行分类。
二、 Facet查询
进行Facet查询需要在请求参数中加入”facet=on”或者”facet=true”只有这样Facet组件才起作用.
1. Field Facet
Facet字段通过在请求中加入”facet.field”参数加以声明,如果需要对多个字段进行Facet查询,那么将该参数声明多次.比如
http://localhost:8983/solr/select?q=联想&facet=on&facet.field=cpu&facet.field=videoCard
查询返回
Xml代码
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="cpu">
<int name="Intel 酷睿2双核 T6600">48</int>
<int name="Intel 奔腾双核 T4300">28</int>
<int name="Intel 酷睿2双核 P8700">18</int>
<int name="Intel 酷睿2双核 T6570">11</int>
<int name="Intel 酷睿2双核 T6670">11</int>
<int name="Intel 奔腾双核 T4400">9</int>
<int name="Intel 酷睿2双核 P7450">9</int>
<int name="Intel 酷睿2双核 T5870">8</int>
<int name="Intel 赛扬双核 T3000">7</int>
<int name="Intel 奔腾双核 SU4100">6</int>
<int name="Intel 酷睿2双核 P8400">6</int>
<int name="Intel 酷睿2双核 SU7300">5</int>
<int name="Intel 酷睿 i3 330M">4</int>
</lst>
<lst name="videoCard">
<int name="ATI Mobility Radeon HD 4">63</int>
<int name="NVIDIA GeForce G 105M">24</int>
<int name="NVIDIA GeForce GT 240M">21</int>
<int name="NVIDIA GeForce G 103M">8</int>
<int name="NVIDIA GeForce GT 220M">8</int>
<int name="NVIDIA GeForce 9400M G">7</int>
<int name="NVIDIA GeForce G 210M">6</int>
</lst>
</lst>
<lst name="facet_dates"/>
</lst>
各个Facet字段互不影响,且可以针对每个Facet字段设置查询参数.以下介绍的参数既可以应用于所有的Facet字段,也可以应用于每个单独的Facet字段.应用于单独的字段时通过
f.字段名.参数名=参数值
这种方式调用.比如facet.prefix参数应用于cpu字段,可以采用如下形式
f.cpu.facet.prefix=Intel
三、facet 参数
facet的参数见solr官方wiki http://wiki.apache.org/solr/SimpleFacetParameters
说明:
搜索结果按照Facet的字段分组并统计
facet 参数字段要求
字段必须被索引
#.field Facet
facet=on 或 facet=true
1.facet.field
分组的字段
2.facet.prefix
表示Facet字段前缀
3.facet.limit
Facet字段返回条数
4.facet.offict
开始条数,偏移量,它与facet.limit配合使用可以达到分页的效果
5.facet.mincount
Facet字段最小count,默认为0
6.facet.missing
如果为on或true,那么将统计那些Facet字段值为null的记录
7.facet.method
取值为enum或fc,默认为fc, fc表示Field Cache
8.facet.enum.cache.minDf
当facet.method=enum时,参数起作用,文档内出现某个关键字的最少次数
例:
&facet=on
&facet.field=city_id
&facet.field=address
http://localhost:8983/solr/select/?q=*:*&indent=on&facet=on&facet.field=unit_price&facet.field=developer_id
返回结果facet_counts:
Xml代码
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="unit_price">
<int name="9100.0">2</int>
<int name="1100.0">1</int>
</lst>
<lst name="developer_id">
<int name="101">2</int>
<int name="100">1</int>
</lst>
</lst>
<lst name="facet_dates"/>
</lst>
#.Date Facet
日期类型的字段
1.facet.date
表示需要Data Facet的字段名
2.facet.date.start
起始时间.时间一般格式为"1995-12-31T12:59:59Z"
另外可以使用"NOW","YEAR","MONTH"等
3.facet.date.end
结束时间
4.facet.date.gap
时间间隔
5.facet.date.hardend
true|false
6.facet.date.other
before|after|between|none|all 默认为none
before会对start之前的值做统计
after会对end之后的值做统计
between会对start至end之间的值做统计,如果hardend为true的话,那么改值就是各个时间段统计值的和
none 表示该项禁用
all 表示before,after,all都会统计
例:
$facet=on
&facet.date=date
&facet.date.start=2009-1-1T0:0:0Z
&facet.date.end=2010-1-1T0:0:0Z
&facet.date.gap=;1MONTH
&facet.date.other=all
7.facet.date.include
lower|upper|edge|outer|all
#.Facet Query
facet.query 可以对任意的字段进行筛选
例:
&facet=on
&facet.query=date:[2009-1-1T0:0:0Z TO 2010-1-1T0:0:0Z]
转载于:https://my.oschina.net/sniperLi/blog/534279
Solr Facet相关推荐
- Solr -- Solr Facet 1
一.Facet介绍 solr facet 是solr搜索的一大特色,facet不好翻译,有说是垂直搜索,有说是分片搜索,但都不是很好,还是懒得翻译了,就叫facet ,具体功能看下面的例子意会吧. 比 ...
- Solr Facet 查询
为什么80%的码农都做不了架构师?>>> Solr Facet查询 转载请出自出处:http://eksliang.iteye.com/blog/2165882 一)概述 Fa ...
- Solr Facet(分片)
2019独角兽企业重金招聘Python工程师标准>>> 在schema文件设置字段的type类型是string,不分词,只能被整个搜索.facet的该字段可以整个展示,就像淘宝的搜索 ...
- Solr Facet技术的应用与研究
问题背景 在<搜索引擎关键字智能提示的一种实现>一文中介绍过,美团的CRM系统负责管理销售人员的门店(POI)和项目(DEAL)信息,提供统一的检索功能,其索引层采用的是SolrCloud ...
- Solr -- Solr Facet 2
solr将以导航为目的的查询结果称为facet. 它并不会修改查询结果信息, 只是在查询结果上根据分类添加了count信息, 然后用户根据count信息做进一步的查询, 比如淘宝的查询列表中, 上面会 ...
- 理解Lucene/Solr的缓存
缓存对于提高搜索引擎的吞吐量,降低CPU占用率极为重要.Lucene/Solr在这块做了很多的工作.Lucene/Solr中默认提供了5种缓存,同时solr还提供扩展缓存接口,允许开发者自定义缓存. ...
- Solr 使用Facet分组过程中与分词的矛盾解决办法
对于一般查询而言 , 分词和存储都是必要的 . 比如 CPU 类型 "Intel 酷睿 2 双核 P7570", 拆分成 "Intel"," 酷睿 & ...
- solr研磨之facet
作者:战斗民族就是干 转载请注明地址:http://www.cnblogs.com/prayers/p/8822417.html Facet 开门见山,facet解决的就是筛选,我是把它理解为一种聚合 ...
- solr参数之facet
facet就像sql语句中的group一样,是对某一个字段进行group并count,即能够按照Facet的字段进行分组并统计. 一.基本使用: 必须属性:facet=true&facet.f ...
- solr中facet及facet.pivot理解
Facet['fæsɪt]很难翻译,只能靠例子来理解了.Solr作者Yonik Seeley也给出更为直接的名字:导航(Guided Navigation).参数化查询(Paramatic Searc ...
最新文章
- Android开发热门前沿知识,成功定级腾讯T3-2
- sys.stdout sys.stderr的用法
- linux如何关闭 lvm管理,Linux之LVM管理
- 廖雪峰python教程在哪看_:廖雪峰python教程在哪
- 【Linux系统编程学习】信号、信号集以其相关函数
- SpringDay01
- python学习实例(5)
- 《Python Cookbook 3rd》笔记(5.19):创建临时文件和文件夹
- quartz监听器使用
- 澳大利亚计算机领域的科学家,澳科学家首创硅基元件 突破量子计算机制造瓶颈...
- Spring-ConfigurationClassPostProcessor类
- typescript vuex_将已有的Vue项目升级支持TypeScript
- Android应用资源---其他资源类型(More Types)(二)
- Introduction to Cryptography
- [Bzoj2039][2009国家集训队]employ人员雇佣(最小割)
- 用数据分析的手段,看2019年CSDN博客之星总评选
- Kubernetes实践:使用k8s部署微服务应用
- 编程语言试验之Antlr4+JavaScript实现圈4
- Latex 表格单元格内换行
- 三十二、http与www服务介绍
热门文章
- MySQL5.5安装及其配置
- C# http请求挂代理
- 发布工程到私有仓库maven
- 【报错】UnboundLocalError: local variable ‘xxx‘ referenced before assignment
- 索引前缀[ AK、IK、PK、CK 、FK、DF、UQ]
- js click与onclick事件绑定,触发与解绑
- 汇率兑换——小象学院知识点
- 国标视频云服务平台EasyGBS出现只能通过录像机观看的情况该如何解决?
- 【ibokan】好的用户界面-界面设计的一些技巧
- 《社会动物——爱、性格和成就的潜在根源》读后感及摘录(2)