`
JLK
  • 浏览: 232651 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

solr分组聚合

    博客分类:
  • solr
阅读更多

在大型电子商务网站中,在商品列表页,我们都可以看到商品按分类,品牌,价格的分类显示,如下图,这些我们可以使用solr中的facet功能实现。

  

 

facet的基本功能就是对搜索结果中的商品进行分类。

    1.facet用法

       facet.field:指定要分类的字段

       facet=on 或 facet=true表示功能开启

       facet.prefix 表示字段前缀

       facet.limit 表示返回的记录数

       facet.offict 表示从第几条开始,主要用于分页

       facet.query可以任意定义查询

       注:用于facet的字段的索引index一定要设为true

      2..facet.field

        这里我们查询产品名称中包含白色的商品有哪些分类,并且知道每个分类有几条记录

        把查询条件q=白色     facet.field=CategoryName,将得到下图结果

         可以看到分类T桖中有两个商品名称中包括白色

             分类裤子中有1个商品包括白色

         

       

       3. 按价格进行分段查询

        可以按价格区间来对搜索结果中的商品进行分段。我们先看下怎么进行分段,打开solrconfig.xml配置,找到如下节点

                      

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. <requestHandler class="solr.SearchHandler" name="/select">  
  2. <lst name="defaults">  
  3. <str name="echoParams">explicit</str>  
  4. <int name="rows">10</int>  
  5. <str name="df">text</str>  
  6.   
  7. str name="facet">on</str>  
  8. <str name="facet.range">Price</str>  
  9. <int name="f.Price.facet.range.start">0</int>  
  10. <int name="f.Price.facet.range.end">5000</int>  
  11. <int name="f.Price.facet.range.gap">1000</int>  
  12. </lst>  
  13. </requestHandler>  

        facet.range节点中表示按范围分段的字段为Price

        f.Price.facet.range.start表示起始值为0

       f.Price.facet.range.end表示最大值为 5000

       f.Price.facet.range.gap表示每次间隔1000进行分段 ,

      最后,我们看到的结果如下图

        0<=Price<1000 有1条记录

       1000<=Price<2000 有2条记录 ,查询的时候下限包括等于这种情况

      

    

           

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1.    

 

    facet还有其他参数用法,大家可以参照下官方文档。

 

转载自:http://blog.csdn.net/zx13525079024/article/details/26376697

分享到:
评论

相关推荐

    GeoPath-Clustering:聚集路径非常相似的地理路径

    GeoPath聚类Memex路由集群项目正在尝试提供工具和技术,以便能够将某些Memex数据作为路由格式进行探索。 路线被定义为通过时间将对象...) 当前用例编号1尚未实现数据集和架构: 我们使用Apache Solr将广告数据点和细

    luceneserver:在Apache Lucene之上的高性能“瘦包装” HTTP REST服务器

    该服务器在上“正在生产中”运行, 是开发人员用来查找Lucene,Solr和Tika jira的近乎实时更新的简单搜索实例。设计该设计与流行的基于Lucene的搜索服务器和不同之处在于,它更多地是围绕Lucene功能的最小且精简的...

    java开源包1

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包11

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包2

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包3

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包6

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包5

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包10

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包4

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包8

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包7

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包9

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    java开源包101

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    Java资源包01

    Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。 彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

Global site tag (gtag.js) - Google Analytics