solr facet

本文深入探讨Solr的分组聚合功能,介绍Facet的使用方法及其在搜索结果分类中的作用。涵盖基本参数设置、不同Facet种类的特性及应用场景,如Field-ValueFacet、RangeFacet和PivotFacet,帮助读者掌握Solr高级查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要: Solr的分组聚合是一个笼统的概念,目的就是把查询结果做分类,有多种方式可以做到很类似的结果。也正是由于它们的不同表现,可以适合于多种场景。

何为Facet

Facet是一种手段,用来将搜索结果分类,它并不会修改查询结果信息,只是给分类后的结果加上了每一项的数量值。我们可以用facet来做导航栏,引导用户更精确地查找信息。

一般参数

参数说明
facet布尔值,设置为true,表示开启facet
facet.query指定查询语句

facet

布尔值,默认为空,只有设置为true,其他的facet参数才能生效。

facet.query

该参数允许你指定任意一个满足Luence语法的查询语句。默认情况下,Solr会自动判断如何分类。通过facet.query可以覆盖默认行为并指定分类策略。可以使用facet.query多次,以指定不同的查询语句。

Facet种类

Solr的Facet有多种形式,它们的参数不尽相同。

Filed-Value Facet

可以用于Text或者String类型的字段。

参数说明
facet.field需要做facet查询的字段,必须指定,否则其他参数无效
facet.sort排序规则,可以是count(默认值,由大到小)或index(字典顺序)
facet.limit控制返回的数量,默认100
facet.missing控制是否考虑没有facet字段,默认false

Range Facet

一般用于date类型或数字类型的字段。

参数说明
facet.range需要做facet查询的字段
facet.range.start设置起始点
facet.range.end设置终止点
facet.range.gap限定每一段范围的区间差值
facet.range.hardend指定如何处理最后一个区间
facet.range.include指定如何处理临界值
facet.range.other指定如何处理限定范围以为的结果
facet.range.method指定facet算法

Pivot Facet /Decision Tree Facet

Pivot可以理解为维度,Pivot Facet用来对表中的数据排序,求和,平均等一系列操作,可以呈现出对facet结果的总结。此外,可以利用这一功能生成决策树,告知你如何更好地利用生成的facet。

示例:参数加上&facet=on&facet.field=uid

{
  "responseHeader":{
    "status":0,
    "QTime":9,
    "params":{
      "q":"post_content:\"nike\"",
      "facet.field":"uid",
      "indent":"on",
      "rows":"0",
      "facet":"on",
      "wt":"json",
      "_":"1567574307269"}},
  "response":{"numFound":33679,"start":0,"docs":[]
  },
  "facet_counts":{
    "facet_queries":{},
    "facet_fields":{
      "uid":[
        "56616",2272,
        "59212",1393,
        "71466",1289,
        "820",1060,
        "58190",693,
        "344",675,
        "58559",524,
        "95849",439,
        "97810",412,
        "56635",405,
        "70449",356,
        "61959",269,
        "63930",250,
        "57823",245,
        "60380",238,
        "84618",235,
        "102601",225]},
    "facet_ranges":{},
    "facet_intervals":{},
    "facet_heatmaps":{}}}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值