lucene/solr去重

红太狼 2022-04-21 15:06 225阅读 0赞

[b][size=medium]

什么是facet呢?参考wiki
比如在taobao或者京东买东西的时候,搜索手机,出现好多品牌、价格区间等分类信息,这就是分组。
也就是文档的公共属性,这可以用来做分组。

一、分组查询facet
在solr中需要开启facet=true功能即可使用,在facet功能中的各个字段如下所示:

1、q字段就类似于我们输入的搜索信息,也可以加上fq的过滤

q=title:手机

2、facet.query会使得搜索结果显示的数字比较少,

facet.query=price:[50 TO *]

3、facet.field是需要分组的公共属性,比如厂家、品牌等字段

facet.field=brand&facet.field=factory

4、facet.date用来分组时间字段,可以设置起止时间和时间的跨度

facet.date=ptime

facet.date.start=2010-1-1T0:0:0Z

facet.date.end=NOW

facet.date.gap=%2B1YEAR

gap设置的时候可以用+-/等符号,但是需要转义才能用。

5、facet.range用来分组数值字段,比如设置最大最小的价格等

facet.range=status

f.status.facet.range.start=0

f.status.facet.range.end=20

f.status.facet.range.gap=5

二、去重查询
facet vs group 区别:
facet的查询结果主要是分组信息:有什么分组,每个分组包括多少记录;但是分组中有哪些数据是不可知道的,只有进一步搜索。
group则类似于关系数据库的group by,可以用于一个或者几个字段去重、显示一个group的前几条记录等。
语法也类似于facet吧,参照wiki

注意:group适用于单个shard,如果使用solrcloud多shard,则需要保证被group的字段能分配到一个shard。
The Grouping feature only works if groups are in the same shard. You must use the custom sharding feature to use the Grouping feature.[/size][/b]
来自:http://sling2007.blog.163.com/blog/static/84732713201352023820290/

发表评论

表情:
评论列表 (有 0 条评论,225人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Flink第一弹:MapState

    点击上方蓝 字关注~         去重计算应该是数据分析业务里面常见的指标计算,例如网站一天的访问用户数、广告的点击用户数等等,离线计算是一个全量、一次性计算的过程通

    相关 python----

    给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度。 例如:数组 A = \\\{1, 1, 2\\\}A=\{ 1,1,2\},你的程序应该输出 22 即新数组的长