**
在网上找了很久一直找到相关关于高亮遇到特殊符号显示不全的原因,后来没办法只能去翻官方文档高亮搜索篇,最后终于在Highlight篇找到了原因**
把number_of_fragments设置为0就可以解决,下面是具体的代码,**
关键的就是倒数第二行的内容
**
//创建搜索请求
SearchRequest searchRequest = new SearchRequest("索引名");
//构造搜索参数
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//设置需要精确查询的字段
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("filed", keyword);
searchSourceBuilder.query(termQueryBuilder);
searchSourceBuilder.from((page - 1) * size);
searchSourceBuilder.size(size);
searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
//高亮
HighlightBuilder highlightBuilder = new HighlightBuilder();
//设置高亮字段
highlightBuilder.field("filed");
//如果要多个字段高亮,这项要为false
highlightBuilder.requireFieldMatch(true);
highlightBuilder.preTags("<span style='color:red'>");
highlightBuilder.postTags("</span>");
//下面这两项,如果你要高亮如文字内容等有很多字的字段,必须配置,不然会导致高亮不全,文章内容缺失等
highlightBuilder.fragmentSize(800000); //最大高亮分片数
highlightBuilder.numOfFragments(0); //从第一个分片获取高亮片段
searchSourceBuilder.highlighter(highlightBuilder);