solr 6.3 入门(五) facet.pivot的使用
来源:互联网 发布:java工程师人才缺口 编辑:程序博客网 时间:2024/06/05 20:17
转载自网络
Solr的学习使用之(七)Solr高级查询facet、facet.pivot简介 - OnTheRoad_Lee
1 、什么是Faceted Search
Facet['fæsɪt]很难翻译,只能靠例子来理解了。Solr作者Yonik Seeley也给出更为直接的名字:导航(Guided Navigation)、参数化查询(Paramatic Search)。
上面是比较直接的Faceted Search例子,品牌、产品特征、卖家,均是 Facet 。而Apple、Lenovo等品牌,就是 Facet values 或者说 Constraints ,而Facet values所带的统计值就是 Facet count/Constraint count 。
2 、Facet 使用
q = 超级本
facet = true
facet.field = 产品特性
facet.field = 品牌
facet.field = 卖家
http://…/select?q=超级本&facet=true&wt=json
&facet.field=品牌&facet.field=产品特性&facet.field=卖家
也可以提交查询条件,设置fq(filter query)。
q = 电脑
facet = true
fq = 价格:[8000 TO *]
facet.mincount = 1 // fq将不符合的字段过滤后,会显示count为0
facet.field = 产品特性
facet.field = 品牌
facet.field = 卖家
http://…/select?q=超级本&facet=true&wt=json
&fq=价格:[8000 TO *]&facet.mincount=1
&facet.field=品牌&facet.field=产品特性&facet.field=卖家
"facet_counts": {"facet_fields": { "品牌": [ "Apple", 4, "Lenovo", 39 …] "产品特性": [ "显卡", 42, "酷睿", 38 …] …}}
如果用户选择了Apple这个分类,查询条件中需要添加另外一个fq查询条件,并移除Apple所在的facet.field。
http://…/select?q=超级本&facet=true&wt=json
&fq=价格:[8000 TO *]&fq=品牌:Apple&facet.mincount=1
&facet.field= 品牌&facet.field=产品特性&facet.field=卖家
3 、Facet 参数
facet.prefix – 限制constaints的前缀
facet.mincount=0 – 限制constants count的最小返回值,默认为0
facet.sort=count – 排序的方式,根据count或者index
facet.offset=0 – 表示在当前排序情况下的偏移,可以做分页
facet.limit=100 – constraints返回的数目
facet.missing=false – 是否返回没有值的field
facet.date – Deprecated, use facet.range
facet.query
指定一个查询字符串作为Facet Constraint
facet.query = rank:[* TO 20]
facet.query = rank:[21 TO *]
"facet_counts": {"facet_fields": { "品牌": [ "Apple", 4, "Lenovo", 10 …] "产品特性": [ "显卡", 11, "酷睿", 20 …] …}}
facet.range
http://…/select?&facet=true
&facet.range=price
&facet.range.start=5000
&facet.range.end=8000
&facet.range.gap=1000
<result numFound="27" ... /> ... <lst name="facet_counts"> <lst name="facet_queries"> <int name="rank:[* TO 20]">2</int> <int name="rank:[21 TO *]">15</int> </lst>...
WARNING: range范围是左闭右开,[start, end)
facet.pivot
这个是Solr 4.0的新特性,pivot和facet一样难理解,还是用例子来讲吧。
Syntax: facet.pivot=field1,field2,field3...
e.g. facet.pivot=comment_user, grade
#docs
#docs grade:好
#docs 等级:中
#docs 等级:差
comment_user:1
10
8
1
1
comment_user:2
20
18
2
0
comment_user:3
15
12
2
1
comment_user:4
18
15
2
1
"facet_counts":{"facet_pivot":{ "comment_user, grade ":[{ "field":"comment_user", "value":"1", "count":10, "pivot":[{ "field":"grade", "value":"好", "count":8}, { "field":"grade", "value":"中", "count":1}, { "field":"grade", "value":"差", "count":1}] }, { "field":" comment_user ", "value":"2", "count":20, "pivot":[{ …
没有pivot机制的话,要做到上面那点可能需要多次查询:
http://...q= comment&fq= grade:好&facet=true&facet.field=comment_user
http://...q=comment&fq=grade:中&facet=true&facet.field=comment_user
http://...q=comment&fq=grade:差&facet=true&facet.field=comment_user
Facet.pivot - Computes a Matrix of Constraint Counts across multiple Facet Fields. by Yonik Seeley.
上面那个解释很不错,只能理解不能翻译。
- solr 6.3 入门(五) facet.pivot的使用
- Solr的学习使用之(七)Solr高级查询facet、facet.pivot简介 - OnTheRoad_Lee
- solr 6.3 入门(四) (solr facet 高级使用)
- solr中facet及facet.pivot理解(整合两篇文章保留参考)
- 转:solr中facet及facet.pivot理解(整合两篇文章保留参考)
- solr+solrJ facet.pivot 用法实例
- 转:Solr学习总结-Facet(各种例子,包括facet.query的使用)
- Solr使用入门指南 (五)
- solr中facet和group的使用
- Solr学习笔记(五)——使用Facet实现自动完成
- solr的facet性能
- solr的facet查询
- solr的facet查询
- solr的facet性能
- solr的facet查询
- solr的facet查询
- Solr Facet的应用
- solr的facet查询
- 网易的一道笔试题
- python学习之路Day4
- Camera1实时预览并采集YUV图像
- 中断下半部
- 简单快速幂
- solr 6.3 入门(五) facet.pivot的使用
- 暑假集训日记--8.21--树状数组
- 资源 | 数十种TensorFlow实现案例汇集:代码+笔记
- 动态代理
- 利用socket多线程访问服务器文件
- hpu 【1194】Judge
- Java 生成二维码
- Linux中写时复制的fork和vfork的实际区别
- c++题目