在我们的项目中,我们需要在外部文件中管理Elasticsearch查询。我们使用Spring Data Elastic,因此我们可以使用@Query
。但我不想这样硬编码:
@Query("{"bool" : {"must" : {"field" : {"name" : "?0"}}}}")
我想指出一些外部文件:我看到@Query
有name参数,但我找不到它应该如何工作的例子
这要我想要:
application.properties:
my.query = {"bool" : {"must" : {"field" : {"name" : "?0"}}}}
和:
@Query(name = "my.query")
或者可能是我应该指向查询所在文件的名称。我找到了JPA示例,但是如何用弹性来完成它?任何帮助将是每个appriciated
与使用namedQueriesLocation
中的EnableJpaRepositories
参数配置命名查询属性文件的位置的位置相同,您可以在EnableElasticsearchRepositories
中使用相同的参数。
另一种方法是使用默认位置文件META-INF/elasticsearch-named-queries.properties
例如:
@Configuration
@EnableElasticsearchRepositories(namedQueriesLocation = "classpath:*-named-queries.properties")
public class ElasticsearchConfiguration {
...
}