摘要: 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的更多相关文章

  1. Solr分组聚合查询之Group

    摘要: Solr对结果的分组处理除了facet还可以使用group.Solr的group是根据某一字段对结果分组,将每一组内满足查询的结果按顺序返回. Group对比Facet Group和Facet ...

  2. orm分组,聚合查询,执行原生sql语句

    from django.db.models import Avg from app01 import models annotate:(聚合查询) ret=models.Article.objects ...

  3. crm使用FetchXml分组聚合查询

    /* 创建者:菜刀居士的博客  * 创建日期:2014年07月09号  */ namespace Net.CRM.FetchXml {     using System;     using Micr ...

  4. SQL分组聚合查询练习(SQL Server和Oracle相似)20190514

    先建表 CREATE TABLE [dbo].[orderdt_jimmy]( ,) NOT NULL, [order_nid] [int] NOT NULL, ) NOT NULL, [qty] [ ...

  5. Django对postgresql数据库进行分组聚合查询

    action(methods=['GET'], detail=False, url_path='count') def count(self, request): """ ...

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

    jsonfacet分组聚合查询 unique.hll函数问题: 对不同的值进行估算,并非准确的值, 优点:节省内存消耗,用分组算法对不同的值count进行估算 缺点:无法准确统计count(disti ...

  7. django第10天(聚合查询,常用字段)

    django第10天 聚合查询 聚合函数的使用场景 单独使用:不分组,只查聚合结果 分组使用:按字段分组,可查分组字段与聚合结果 导入聚合函数 from django.db.models import ...

  8. 浅析MySQL使用 GROUP BY 分组聚合与细分聚合

    原创文章,转载请注明出处:http://www.cnblogs.com/weix-l/p/7521278.html: 若有错误,请评论指出,谢谢! 1. 聚合函数(Aggregate Function ...

  9. Flask聚合函数(基本聚合函数、分组聚合函数、去重聚合函数))

    Flask聚合函数 1.基本聚合函数(sun/count/max/min/avg) 使用聚合函数先导入:from sqlalchemy import func 使用方法: sun():func.sum ...

随机推荐

  1. install ros-indigo-camera-info-manager

    CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake: (find_package): Could not fi ...

  2. python 通过列表元素值截取列表并获取长度

    def count_range_in_list(li, min, max): ctr = for x in li: if min <= x <= max: ctr += return ct ...

  3. CSS 再学习,文本处理

    文本缩进(对p,div有效:对span无效) p {text-indent: 5em;} Tips:一般来说,可以为所有块级元素应用 text-indent,但无法将该属性应用于行内元素(span), ...

  4. CSS再学习 之背景色 背景图片

    背景色 p {background-color: gray;} 如果您希望背景色从元素中的文本向外少有延伸,只需增加一些内边距. p {background-color: gray; padding: ...

  5. mongodb 用户点赞功能理论实现[转载]

    在 posts(文章) 集合中储存对该文章点赞的用户的 _id 的数组,例如: // posts { _id: ObjectID('4e7020cb7cac81af7136236b'), users_ ...

  6. python批量修改ssh密码

    由于工作需要本文主结合了excel表格,对表格中的ssh密码进行批量修改 以下是详细代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- impo ...

  7. HDU 4004 二分

    The Frog's Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) ...

  8. a标记无效问题

    当在<a href=''></a>这个标记中嵌入<td></td>  就会导致部分浏览器无法单击,所以在开发HTML页面的时候,一定不要在 a标记中嵌入 ...

  9. 让FireFox支持window.event属性

    场景描述: 在用户行为采集的过程中,需要侦听window下的event对象,根据事件类型做相应的过滤处理,但在firefox下window.event是未定义的: 问题分析: 要想获取event属性共 ...

  10. C#金额千分位分隔

    "234234".ToString("C") 显示:¥234,234