java es 高亮字段设置
public StandardResponse searchArticles(Integer pageNum,Integer pageSize,String keyword) {
SearchRequest searchRequest = new SearchRequest("article");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
QueryBuilder queryBuilder = QueryBuilders.matchQuery("articleContent", keyword);
boolQueryBuilder.must(queryBuilder);
//设置高亮字段
HighlightBuilder highlightBuilder = new HighlightBuilder();
HighlightBuilder.Field articleContent = new HighlightBuilder.Field("articleContent");
highlightBuilder.field(articleContent);
highlightBuilder.preTags(preTags);
highlightBuilder.postTags(postTags);
searchSourceBuilder.highlighter(highlightBuilder);
searchSourceBuilder.query(boolQueryBuilder);
SearchRequest request = searchRequest.source(searchSourceBuilder);
SearchResponse response = elasticsearchUtil.query(request);
Map<String, Object> result = new HashMap<>();
SearchHit[] hits = response.getHits().getHits();
if (null != hits && hits.length > 0) {
for (SearchHit hit : hits) {
result.put("id", hit.getId());
result.put("data", hit.getSourceAsMap());
result.put("highlight", hit.getHighlightFields());
}
}
System.out.println(response.getHits().getHits());
return StandardResponse.newResponse(200, "查询成功", result);
}