zoukankan      html  css  js  c++  java
  • solr 分面搜索(转载)

    原文地址:http://blog.csdn.net/bingduanlbd/article/details/52199347

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

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

    环境

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

    solr -e techproducts -p 8984

    • 1

      通用参数

    • 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

    • 1

      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

    • 1

      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]

    • 1

      参考资料

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

  • 相关阅读:
    基于索引的MySQL优化
    SQL优化:
    in的对象选择(子查询还是List集合),in 的优化,in与exists
    嵌套查询及其作用域:
    group by实现原理及其作用
    批量打回未报bug修复
    解析Job,bpmn文件的小项目总结
    用户短时间内多次提交与保存带来的问题
    嵌套连接
    多范围读取优化
  • 原文地址:https://www.cnblogs.com/xiaolang8762400/p/7451060.html
Copyright © 2011-2022 走看看