如何根据 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 中的顺序过滤结果?的主要内容,如果未能解决你的问题,请参考以下文章