我在 Spring 中定义了这个接口,用于查询 Elascticsearch。我添加了@Query 注释来完成一些过滤。
public interface ObjectElasticSearch extends ElasticsearchRepository<ElasticObject, String> {
@Query("{\"query\" : {\"filtered\" : {\"filter\" : { \"and\" : [ { \"term\" : { \"firstName\" : \":firstName\" }}, { \"term\" : { \"lastName\" : \"Baggins\" }} ] }}}}")
List<ElasticObject> findByDocFirstNameAndDocLastName(@Param("firstName") String firstName,
@Param("lastName") String lastName);
};
@Query 注释被完全忽略。如您所见,我尝试对姓氏进行硬编码,但这对查询结果没有影响。如果我删除查询字符串中的大括号,我不会收到任何错误。查询仍然有效,过滤被忽略,它返回所有匹配项。
有人可以帮我弄清楚我在这里做错了什么。