如何使用Spring Data Elasticsearch @Query

时间:2015-08-28 02:11:52

标签: elasticsearch spring-data

当我使用以下代码作为Spring文档时,eclipse总是在令牌上显示语法错误。

public interface BookRepository extends ElasticsearchRepository<Book, String> {
@Query("{"bool" : {"must" : {"field" : {"name" : "?0"}}}}")
Page<Book> findByName(String name,Pageable pageable);}

2 个答案:

答案 0 :(得分:3)

我怀疑它不喜欢@Query注释中的查询。 您需要在查询中转义双引号。

public interface BookRepository extends ElasticsearchRepository<Book, String> {
@Query("{\"bool\" : {\"must\" : {\"field\" : {\"name\" : \"?0\"}}}}")
Page<Book> findByName(String name,Pageable pageable);}

确实,这是一个文档错误。但是,在their tests中,我们可以发现双引号必须被转义,因为双引号是Java中的保留分隔符。

答案 1 :(得分:0)

复制您的JSON查询(在“query”下:{,不带查询标记)。

在代码中编写@Query(“”)并将复制的查询粘贴到引号内,IDE可能会自动转义查询。

对长查询很有用。