我的代码
package com.tl666.elasticsearch.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.Document;
import java.util.Date;
@Data
@Document(indexName = "blog", type = "blogtext")
@NoArgsConstructor
@AllArgsConstructor
public class Blog {
private Integer id;
private String title;//标题
private String text;//文本内容
private String[] images;
private Person person;
private Date create_time;
}
Elasticsearch行动
package com.tl666.elasticsearch.repository;
import com.tl666.elasticsearch.pojo.Blog;
import org.springframework.data.elasticsearch.annotations.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface BlogRepository extends ElasticsearchRepository<Blog, Integer> {
@Query("{ \"query\": { \"match\": { \"title\": \"?0\" }}}")
Blog findByName(String title);
}
发生以下异常
org.elasticsearch.common.ParsingException: no [query] registered for [query]
at org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder(AbstractQueryBuilder.java:337) ~[elasticsearch-6.8.4.jar:6.8.4]
at org.elasticsearch.index.query.WrapperQueryBuilder.doRewrite(WrapperQueryBuilder.java:165) ~[elasticsearch-6.8.4.jar:6.8.4]
at org.elasticsearch.index.query.AbstractQueryBuilder.rewrite(AbstractQueryBuilder.java:284) ~[elasticsearch-6.8.4.jar:6.8.4]
at org.elasticsearch.search.builder.SearchSourceBuilder.rewrite(SearchSourceBuilder.java:949) ~[elasticsearch-6.8.4.jar:6.8.4]
at org.elasticsearch.search.builder.SearchSourceBuilder.rewrite(SearchSourceBuilder.java:80) ~[elasticsearch-6.8.4.jar:6.8.4]
我根据官方文档进行操作,但发生了上述异常。
谁会帮助我?非常感谢。
您需要删除query
部分。请尝试以下方法:
@Query("{ \"match\": { \"title\": \"?0\" }}")