Solr:查询并返回x个类型
我有一个很大的文件索引。我拥有的字段之一是“content_type”。该字段存储文件的基本类型(即 pdf、图像、视频、文档、电子表格等)。
我正在对文件名(我的“标题”字段)进行搜索。如何构建查询,使其只返回每种类型的一定数量?
例如,假设我有 1000 个标题中带有“work”一词的文件。我想在标题中搜索“work”,但我希望首先返回每个“content_type”的 5 个结果。 (假设每个特定的 content_type 有 5 个或更多项目)。因此,在我的搜索结果页面上,我可以说:
找到了 1,000 个“工作”项目
然后我开始列出项目,每种类型 5 个。
任何人都可以帮助我构建一个可以执行此操作的查询吗?我对 Solr 还很陌生,但我希望能做到这一点。
I have a large index of files. One of the fields I have is "content_type". This field stores the basic type for a file (i.e. pdf, image, video, document, spreadsheet, etc).
I'm running a search on files names (my "title" field). How can I structure the query so that it returns only a certain amount of each type?
For example, say I have 1000 files with the word "work" in the title. I want to search for "work" in the title, but I want 5 results from each "content_type" returned first. (assuming that each specific content_type has 5 or more items). So on my search results page I can say:
1,000 items were found for "work"
Then I start listing listing the items, 5 for each type.
Can anyone help me build a query that will do this? I'm pretty new to Solr, but I'm hoping this can be done.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
似乎基本上您想要限制每种内容类型的结果并对结果进行分组。
查看 Solr 字段折叠和分组功能
这将帮助您使用以下方法对每个内容类型的结果进行分组group.field=content_type
可以通过group.limit=5来限制组中的结果数量
有关选项的完整列表,请参阅上面的链接。
您可以使用普通查询参数来搜索结果,即 q=work
此功能仅在 Solr 3.3 版本中可用。
Seems basically you want to limit and group the results per content type.
Check out the Solr field Collapsing and grouping feature
This will help you to group the results per content type using group.field=content_type
The number of results in a group can be limited by group.limit=5
For the complete list of options refer to the link above.
And you can use the normal query parameters to search the results i.e. q=work
This feature is only available from the Solr 3.3 build.