Spring 数据弹性搜索@Query @Highlight
Spring Data Elastic Search @Query @Highlight
我无法使用此查询代码获取突出显示的字段,任何想法,我正在使用
SDE4.0.0.RC2,我想用@Query:
@Query("{\n" +
" \"multi_match\": {\n" +
" \"query\": \"?0\",\n" +
" \"fields\": [\n" +
" \"code^2\",\n" +
" \"name\"\n" +
" ],\n" +
" \"analyzer\": \"standard\"\n" +
" }\n" +
"}")
@Highlight(
fields = @HighlightField(
name = "['code','name']"),
parameters = @HighlightParameters(
preTags = "<strong>",
postTags = "</strong>",
fragmentSize = 500,
numberOfFragments = 3
)
)
List<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
您需要在单独的注释参数中指定每个突出显示字段:
@Query("{\n" +
" \"multi_match\": {\n" +
" \"query\": \"?0\",\n" +
" \"fields\": [\n" +
" \"code^2\",\n" +
" \"name\"\n" +
" ],\n" +
" \"analyzer\": \"standard\"\n" +
" }\n" +
"}")
@Highlight(
fields = {
@HighlightField(name = "code"),
@HighlightField(name = "name")
},
parameters = @HighlightParameters(
preTags = "<strong>",
postTags = "</strong>",
fragmentSize = 500,
numberOfFragments = 3
)
)
List<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
编辑:
除此之外,您还必须更改方法的 return 类型:
List<SearchHit<CodeNames>> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
或
SearchHits<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
为了能够从 returned SearchHit
中读取高亮值,请参阅 https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.RC2/reference/html/#elasticsearch.operations.searchresulttypes
我无法使用此查询代码获取突出显示的字段,任何想法,我正在使用 SDE4.0.0.RC2,我想用@Query:
@Query("{\n" +
" \"multi_match\": {\n" +
" \"query\": \"?0\",\n" +
" \"fields\": [\n" +
" \"code^2\",\n" +
" \"name\"\n" +
" ],\n" +
" \"analyzer\": \"standard\"\n" +
" }\n" +
"}")
@Highlight(
fields = @HighlightField(
name = "['code','name']"),
parameters = @HighlightParameters(
preTags = "<strong>",
postTags = "</strong>",
fragmentSize = 500,
numberOfFragments = 3
)
)
List<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
您需要在单独的注释参数中指定每个突出显示字段:
@Query("{\n" +
" \"multi_match\": {\n" +
" \"query\": \"?0\",\n" +
" \"fields\": [\n" +
" \"code^2\",\n" +
" \"name\"\n" +
" ],\n" +
" \"analyzer\": \"standard\"\n" +
" }\n" +
"}")
@Highlight(
fields = {
@HighlightField(name = "code"),
@HighlightField(name = "name")
},
parameters = @HighlightParameters(
preTags = "<strong>",
postTags = "</strong>",
fragmentSize = 500,
numberOfFragments = 3
)
)
List<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
编辑:
除此之外,您还必须更改方法的 return 类型:
List<SearchHit<CodeNames>> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
或
SearchHits<CodeNames> findAllByCodeAndNameOrderByName(String code, Pageable pageable);
为了能够从 returned SearchHit
中读取高亮值,请参阅 https://docs.spring.io/spring-data/elasticsearch/docs/4.0.0.RC2/reference/html/#elasticsearch.operations.searchresulttypes