对于我的应用程序,我必须对弹性执行自定义计数,我想在我们使用的ElasticsearchCrudRepository中为此使用@Query批注。当我使用以下签名时:
@Query("CUSTOM BOOL QUERY HERE")
long countItemsCustom();
这导致java.lang.IllegalArgumentException: Expected 1 but found 30 results
异常,因为它是作为查询而不是计数执行的。对于spring-data-cassandra,我们有一个特殊的@CountQuery批注来解决此问题。在spring-data-elasticsearch中有类似的解决方案吗?
我可以使用弹性客户端或模板执行自定义查询并获取结果,但是如果可能的话,我更喜欢使用现有的存储库接口。
不,目前尚不可能。本ElasticsearchStringQuery
类检查被注释与方法的返回类型@Query
的注释,然后执行ElasticsearchOperations.queryFor...()
适合于该方法的返回类型的方法。这些是查询数据而不是计数。
我在Spring Data Elasticsearch Jira中创建了一个问题以添加此功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句