Solr分面搜索(Faceting)

分面搜索(Faceting)基于索引词项对搜索结果进行分类,同时返回每个分类对应的文档数。用户可以可以分类缩小结果范围。下图是一个结果汇总的例子:

image_1aq1aa5rcfdijhf1ico12pv137m1g.png-126.2kB

Amazon的搜索也提供了非常优秀的分面及相应的过滤:

image_1aq1af6be1a5547310ffue4l351t.png-305.6kB

环境

Solr的发行版自带了一些很好的例子,使用这些例子研究Solr的各种特性非常合适。我们这里使用Solr自带的techproducts索引作为例子。启动solr:

solr -e techproducts -p 8984

通用参数

  • facet: true/false 是否开启faceting计数
  • facet.query: 指定计数防暑,语法跟Solr正常的查询一致。默认情况上检查字段唯一term并返回计数,相当于count(distinct field)

Field-value Faceting

主要参数:

  • facet.field: 指定字段

查询:

http://localhost:8984/solr/techproducts/select?q=price:[0 TO 400]&fl=id,name,price&facet=true&facet.field=cat

image_1aq181i2c1eqs7dnhe12vh2179.png-18.6kB

Range Faceting

主要参数:

  • facet.range: 指定字段
  • facet.range.start:区间开始值
  • facet.range.end: 区间结束值
  • facet.range.gap:步长
http://localhost:8984/solr/techproducts/select?q=price:[0 TO 4000]&fl=id,name,price&facet=true&facet.field=cat&facet.range=price&f.price.facet.range.start=0.0&f.price.facet.range.end=1000.0&f.price.facet.range.gap=100

image_1aq18l7i11g211h1ldaq872rnm.png-13.5kB

Interval Faceting

主要参数:

  • facet.interval:指定字段
  • facet.interval.set: 间隔设置
http://localhost:8984/solr/techproducts/select?q=*:*&fl=id,name,price&facet=true&facet.field=cat&facet.interval=price&f.price.facet.interval.set=[0,10]&f.price.facet.interval.set=(10,100]

image_1aq197uro9d11dku1dhtt711s6g13.png-3.7kB

参考资料

官方文档:
https://cwiki.apache.org/confluence/display/solr/Faceting

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值