search - 如何获得 Solr 索引中每种类型的前 X 个结果

标签 search solr faceted-search

我有一个带有 type 字段的 Solr 索引,它可以有不同的值,如“电影”、“书籍”等。给定一个搜索词,我如何找到索引中所有类型的前 X 个文档?

例如,如果我搜索“猫”,我希望获得关于“猫”的前 X 本书、前 X 电影等等。

我想看看这是否可以在单个查询中完成,而不是对每种类型进行多次查询。 (这些类型是由使用 Solr 的应用程序预定义的,总共大约有六个)。

最佳答案

您应该检查 Solr 中的字段折叠/结果分组。这是官方文档。 https://cwiki.apache.org/confluence/display/solr/Result+Grouping

在您的情况下,查询可能如下所示

http://localhost:8983/solr/your_index/select?wt=json&indent=true&fl=your_field1,your_field2&q=your query here&group=true&group.field=type

默认情况下,组内的结果按查询分数排序。请参阅上述文档中 Request Parameters 部分下的 sortgroup.sort

关于search - 如何获得 Solr 索引中每种类型的前 X 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901133/

相关文章:

eclipse-搜索一次只能打开一个文件

oracle - solr clobtransformer

asp.net-mvc - 使用 ASP.NET MVC 自定义路由以进行分面搜索 [从 QueryString 到 Route ]

python - 干草堆刻面 : __init__() got an unexpected keyword argument 'facet_fields'

elasticsearch - 方面搜索与RDMS上的字段相比

ruby - 在子目录的文件中搜索字符串

search - Flex 和 Bison Associativity 难度

mysql - sunspot solr 未定义字段类型

java - Hadoop,用于处理来自Apache Solr的数据

search - emacs新手问题 - 如何在区域内搜索