如何根据 Solr 中的顺序过滤结果?

Posted

技术标签:

【中文标题】如何根据 Solr 中的顺序过滤结果?【英文标题】:How to filter results based on order in Solr? 【发布时间】:2011-01-01 03:38:21 【问题描述】:

我需要在 n 个被选中的文档中分面

... ORDER BY something DESC LIMIT 100

Solr 有可能吗?怎么样?

【问题讨论】:

您的意思是单页结果中的方面? 嗯,是的,有点,但有排序的结果。从前 10 个值中获取统计信息的示例 尝试在mail-archives.apache.org/mod_mbox/lucene-solr-user上询问/建议 【参考方案1】:

这是一个彻底的黑客攻击,但是这里......

    进行初始查询,然后返回结果。 构造一个新查询,如下所示:

http://localhost:8080/solr/select/?q=id%3A123+OR+id%3A456...(keep OR-ing 他们)...&facet=true&facet.field=something

使用 OR 将所有 ID 连接到一个新查询。那么,当你在你的领域进行分面时,分面摘要将仅适用于结果。

【讨论】:

嗯,是的,但这不是一个很好的解决方案,例如获得前 10000 名:)【参考方案2】:

AFAIK 不,不支持/实施。 Facets 并不是真正意义上的“统计数据”,而是对最终用户的指导。想象一下自己浏览分面界面,并在更改排序顺序或分页时看到分面发生变化。如果这样工作,分面浏览将毫无用处。

我认为这对StatsComponent 来说是一个不错的功能。

【讨论】:

是的,我同意,这将是一个不错的功能,以及百分位数计算。【参考方案3】:

我认为这可以通过结果分组(现在在主干!):

http://wiki.apache.org/solr/FieldCollapsing

...唯一的问题是你只能设置一个'facet.field'(即group.field)

但最棒的是你可以得到分数!

【讨论】:

以上是关于如何根据 Solr 中的顺序过滤结果?的主要内容,如果未能解决你的问题,请参考以下文章

SOLR查询过滤结果中的自定义排序?

如何让 Solr 不索引查询中的常用词?

如何根据Django Solr中选定的类别形成正确的查询列表

sql 如何过滤重复记录

如何动态添加solr中的键值对?

如何根据列中的公式结果运行过滤器?