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

[经验分享] Solr

[复制链接]

尚未签到

发表于 2015-7-17 11:43:05 | 显示全部楼层 |阅读模式
  一、Facet介绍
  solr facet 是solr搜索的一大特色,facet不好翻译,有说是垂直搜索,有说是分片搜索,但都不是很好,还是懒得翻译了,就叫facet ,具体功能看下面的例子意会吧。
  比如你上淘宝,输入“笔记本”进行搜索,就会出现品牌分类,价格范围等分类,这个就叫facet了。这个例子也许好不是那么准确的描述facet,不过基本上就是这个意思。对输入关键字后搜索出来的结果再进行分类。
DSC0000.jpg
  
  二、 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代码 DSC0001.png
  
       
  •    
  •    
  •    
  •    
  • 48   
  • 28   
  • 18   
  • 11   
  • 11   
  • 9   
  • 9   
  • 8   
  • 7   
  • 6   
  • 6   
  • 5   
  • 4   
  •    
  •    
  • 63   
  • 24   
  • 21   
  • 8   
  • 8   
  • 7   
  • 6   
  •    
  •    
  •    

    各个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代码
  
       
  •    
  •    
  •    
  •    
  • 2   
  • 1   
  •    
  •    
  • 2   
  • 1   
  •    
  •    
  •    

    #.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]

运维网声明 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-87634-1-1.html 上篇帖子: 【转】solr deltaImportQuery deltaQuery parentDeltaQuery 用法规则 下篇帖子: Solr4.4入门,介绍Solr的安装、IK分词器的配置及高亮查询结果(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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