【问题标题】:SOLR - Querying Facets, return N results per FacetSOLR - 查询 Facet,每个 Facet 返回 N 个结果
【发布时间】:2014-06-03 15:49:39
【问题描述】:

我有大量的文档存储在 SOLR 索引中。我想执行一个查询,返回指定字段的 Facet 计数,并返回每个 Facet 字段的前 100 个文档。

例如。假设我的 SOLR 索引中有一堆书。

{ name: "Book 1", genre: "Mystery" },
{ name: "Book 2", genre: "Science Fiction" },
{ name: "Book 3", genre: "Romance" },
{ name: "Book 4", genre: "Mystery" }

现在,我想在一个字段上指定一个 Faceted 查询,在这个例子中是书籍的类型。 facet=true&facet.field=genre。此搜索结果可能类似于:

 "facet_fields":{
    "genre":[
       "Mystery",503322,
       "Science Fiction",40759,
       "Romance",23987
    ]
 }

这给了我与每种类型相匹配的书籍数量。如果我要在我的查询中添加一个rows 参数,这只会返回给我与查询匹配的前 N ​​本书。

但是,我想更进一步。我希望 SOLR 返回与我的查询匹配的每种类型的前 100 本书。这意味着,由于返回了 3 个方面字段(神秘、科幻和浪漫),因此此搜索可能会返回多达 300 个文档。

如果可能,我希望这一切都在一个查询中执行。我可以这样做吗?我是否需要多次查询 SOLR 才能获得我要查找的内容?如果是这样,获得我想要的东西的推荐方法是什么?

我对 SOLR 还很陌生,只是想了解 SOLR 的能力和能力。

【问题讨论】:

    标签: solr


    【解决方案1】:

    查看 Solr 中的 group option。例如,要获取每个 genre 的前 100 个文档,您可以使用 group=true&group.field=genre&group.limit=100

    【讨论】:

    • 完美,正是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多