我有一个带有 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 部分下的 sort
和 group.sort
。
关于search - 如何获得 Solr 索引中每种类型的前 X 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901133/