Solr分面搜索及可视化【查询分面、区间分面】

一.查询分面

对任意索引字段使用分面返回最靠前的值,在任意子查询上使用这种做法也很有用,这样就可以知道未来的搜索可能匹配出多少结果,并基于该数字提供相应的分析。
当需要根据不同的搜索条件进行分别搜索统计时,简单粗暴的方式是分别执行多个搜索。例如,如果想对美国餐馆的分布情况进行统计时,需要分别执行以下查询:
在这里插入图片描述
一系列的查询,根据条件的不同,可能要执行多次查询:
在这里插入图片描述
Solr子查询对搜索结果计数是最简单粗暴的方式,虽然这种方式没有操作的不便之处,但这样做完全没有必要。下面展示如何使用查询分面轻松实现将多个子查询组合起来:
在这里插入图片描述
正如你所见,多个子查询通过查询分面可以组合成一个Solr请求。上面的例子基于分类数据的,但有些数据是连续性的,比如价格,这里的价格区间并不是均匀间隔的,如下:
在这里插入图片描述

二.区间分面

顾名思义,区间分面将数值和日期字段值分成一些区间段,以便Solr返回各个区间以及他们包含的文档数。创建多个不同的查询分面来表示多个区间值的做法,可以用区间分面很好地代替。
类似上面的多个区间值查询创建的查询分面,区间分面搜索引擎返回的值均匀分布,类似的分面计数通过Solr的区间分面返回,如下:
在这里插入图片描述
区间分面返回了查询落在facet.range.start和facet.range.end两个参数间的每个区间段的统计数,有些不包含文档的区间也被返回了。其次,与查询分面不同,根据facet.range.gap参数设置,区间分面的区间间隔是相同的。根据应用需求可以调整间隔,以创建更大或更小的区间段。返回所以区间段的做法会节省大量时间,因为不必设置许多facet.query参数就可以实现类似的效果。
区间分面还有其他一些参数可以选择,包括facet.range.hardend,facet.range.other和facet.range.include。详情如下:
在这里插入图片描述
以及:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值