Solr分组聚合查询之Facet

Posted cuihongyu3503319

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr分组聚合查询之Facet相关的知识,希望对你有一定的参考价值。

               

摘要: 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。

           

以上是关于Solr分组聚合查询之Facet的主要内容,如果未能解决你的问题,请参考以下文章

solrcloud jsonfacet分组聚合 unique计数不准确

Mongodb对来自聚合方面的两个相似数据数组进行分组和求和

solr facet 如何不分词

Solr中Facet用法和Group用法

django数据查询之聚合查询和分组查询

如何对 Solr 中的多个字段执行嵌套聚合?