【发布时间】: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