设为首页 收藏本站
查看: 1691|回复: 0

[经验分享] Solr的学习使用之(七)Solr高级查询facet、facet.pivot简介

[复制链接]

尚未签到

发表于 2015-7-17 12:46:04 | 显示全部楼层 |阅读模式
  以下转载自:http://hongweiyi.com/2013/03/apache-solr-facet-introduction/
  1、什么是Faceted Search
  Facet['fæsɪt]很难翻译,只能靠例子来理解了。Solr作者Yonik Seeley也给出更为直接的名字:导航(Guided Navigation)、参数化查询(Paramatic Search)。
  
DSC0000.png
  上面是比较直接的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









...


2
15

...


  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.
  上面那个解释很不错,只能理解不能翻译。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87676-1-1.html 上篇帖子: solr 在windows下的安装 下篇帖子: 在ubuntu11.04安装solr
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表