首页 文章

SOLR - 查询Facets,每个Facet返回N个结果

提问于
浏览
2

我有一个存储在SOLR索引中的大量文档 . 我想执行一个返回指定字段的Facet计数的查询,并返回 each Facet field 的前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将符合我查询的 first 100 books of each genre 返回给我 . 这意味着,由于返回了3个方面字段(神秘,科幻和浪漫),此搜索最多可返回300个文档 .

如果可能的话,我希望这一切都在一个查询中执行 . 我能够这样做吗?我需要多次查询SOLR才能获得我想要的内容吗?如果是这样,建议采取什么方法来获得我想要的东西?

我对SOLR很新,只是试图掌握SOLR是什么而且不具备能力 .

1 回答

  • 3

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

相关问题