为什么在hibernate搜索中不支持像group_by这样的聚合函数?

时间:2018-02-12 09:47:56

标签: lucene hibernate-search

为什么在hibernate搜索中不支持像group_by这样的聚合函数?

我有一个用例,我需要在查询中应用group by后获取结果。

2 个答案:

答案 0 :(得分:1)

如果这是你的意思,没有技术原因。我们可以添加它,但对此功能的要求不足以使其成为我们优先级列表的顶部。

如果您希望看到添加到Hibernate Search的功能,请随意在our JIRA instance上创建一个故障单,详细描述您的用例和您期望的API。

请注意,我并非100%确定我们是否会为Lucene后端实现它,因为这可能需要付出很多努力。但是对于在Hibernate Search后面使用Elasticsearch的人,我们至少可以介绍在Hibernate Search中使用Elasticsearch的聚合支持的方法。我们目前正在尝试使用Hibernate Search 6,并尝试将其放在我的核对清单上。

与此同时,如果您希望我们建议替代方案,请提供有关您的使用案例的更多详细信息:域名模型,映射,您希望通过"聚合作为"组的一部分的字段;

答案 1 :(得分:1)

为什么缺少

Hibernate Search不支持的主要原因是没有人要求它或贡献它。

另一个原因是,因为结果将是"实体组"虽然FulltextQuery API返回实体列表,但这需要专门用于运行此类查询的新API。

如何添加

我们可以做到这一点,但如果对该功能没有太大兴趣,则可能不值得进行维护工作。

如果您需要此功能,我建议您在Hibernate Search issue tracker上打开一个问题,以便其他人也可以投票或表达对此的兴趣。理想情况下,像你这样需要它的人可能愿意创建一个补丁或者至少开始一个概念验证。

替代

在Hibernate Search为其提供直接支持之前,您仍然可以自己运行此类查询。请参阅Using IndexReaders directly直接处理Lucene索引。

使用IndexReaders,您始终可以使用Hibernate Search不提供API的任何高级功能阅读和搜索Lucene。