当前位置: 首页 > wzjs >正文

比较正规的招聘网站富利建设集团有限公司网站

比较正规的招聘网站,富利建设集团有限公司网站,制作公司的网站,黑龙江省建设厅官网文章目录 一、高亮核心概念二、高亮请求构建1. API结构2. 完整构建示例3. 简化写法 三、高亮结果解析1. 解析流程2. 多片段处理 四、完整案例实现需求说明:Java代码实现: 五、关键注意事项1. 字段类型要求2. 搜索结果要求3. 性能优化 六、常见问题排查1.…

文章目录

    • 一、高亮核心概念
    • 二、高亮请求构建
      • 1. API结构
      • 2. 完整构建示例
      • 3. 简化写法
    • 三、高亮结果解析
      • 1. 解析流程
      • 2. 多片段处理
    • 四、完整案例实现
      • 需求说明:
      • Java代码实现:
    • 五、关键注意事项
      • 1. 字段类型要求
      • 2. 搜索结果要求
      • 3. 性能优化
    • 六、常见问题排查
      • 1. 高亮结果为空
      • 2. 标签未生效
      • 3. 多字段高亮
    • 七、扩展功能
      • 1. 多种高亮类型
      • 2. 匹配片段控制
      • 3. 全局标签设置

一、高亮核心概念

  1. 高亮结果与原始数据分离:
    • _source:原始文档数据(无高亮)
    • highlight:独立的高亮结果字段(带HTML标签)
  2. 高亮三要素:
    • 高亮字段(必须与查询字段一致)
    • 前置标签(默认<em>
    • 后置标签(默认</em>

二、高亮请求构建

1. API结构

SearchRequest request = new SearchRequest("index");
request.source().query(...)        // 必须包含搜索条件.highlighter(...); // 设置高亮参数

2. 完整构建示例

// 创建高亮构建器
HighlightBuilder highlightBuilder = new HighlightBuilder();// 设置高亮字段与标签
highlightBuilder.field("name")             // 高亮字段.preTags("<em>")                      // 前置标签.postTags("</em>");                   // 后置标签// 加入请求
request.source().highlighter(highlightBuilder);

3. 简化写法

request.source().highlighter(new HighlightBuilder().field(new HighlightBuilder.Field("name").preTags("<strong>").postTags("</strong>"))
);

三、高亮结果解析

1. 解析流程

SearchHits hits = response.getHits();
for (SearchHit hit : hits) {// 1. 获取原始数据String sourceJson = hit.getSourceAsString();HotelDoc doc = JSON.parseObject(sourceJson, HotelDoc.class);// 2. 获取高亮数据Map<String, HighlightField> highlightFields = hit.getHighlightFields();if (highlightFields.containsKey("name")) {// 3. 提取高亮片段HighlightField highlightField = highlightFields.get("name");Text[] fragments = highlightField.getFragments();String highlightedName = fragments[0].string();// 4. 替换原始数据doc.setName(highlightedName);}
}

2. 多片段处理

// 拼接所有高亮片段
StringBuilder highlightedText = new StringBuilder();
for (Text fragment : fragments) {highlightedText.append(fragment.string());
}
doc.setName(highlightedText.toString());

四、完整案例实现

需求说明:

  • 搜索"脱脂牛奶"
  • name字段进行高亮
  • 使用自定义标签<em></em>

Java代码实现:

@Test
void testHighlight() throws IOException {
// 1. 创建请求对象
SearchRequest request = new SearchRequest("items");// 2. 构建查询条件
request.source().query(QueryBuilders.matchQuery("name", "脱脂牛奶"));// 3. 设置高亮参数
HighlightBuilder highlightBuilder = new HighlightBuilder()
.field("name")
.preTags("<em>")
.postTags("</em>");
request.source().highlighter(highlightBuilder);// 4. 发送请求
SearchResponse response = client.search(request, RequestOptions.DEFAULT);// 5. 解析结果
parseHighlightResponse(response);
}private void parseHighlightResponse(SearchResponse response) {SearchHits hits = response.getHits();for (SearchHit hit : hits) {// 解析原始数据ItemDoc doc = JSONUtil.toBean(hit.getSourceAsString(), ItemDoc.class);// 处理高亮结果Map<String, HighlightField> highlightFields = hit.getHighlightFields();if (!highlightFields.isEmpty()) {HighlightField nameField = highlightFields.get("name");if (nameField != null) {String highlightedName = nameField.getFragments()[0].string();doc.setName(highlightedName);}}System.out.println(doc);}
}

运行结果:

五、关键注意事项

1. 字段类型要求

  • 高亮字段必须是text类型且包含keyword子字段
  • 错误配置会导致无法获取高亮结果

2. 搜索结果要求

  • 必须包含实际搜索条件(如match查询),否则无高亮结果

3. 性能优化

  • 避免对长文本字段进行高亮(如content字段)
  • 设置fragment_size控制返回片段长度:
highlightBuilder.field("name").fragmentSize(200);

六、常见问题排查

1. 高亮结果为空

  • 检查查询条件是否实际匹配文档
  • 验证字段映射是否支持高亮
  • 检查高亮字段名是否与查询字段一致

2. 标签未生效

  • 确认前端HTML转义处理(防止XSS攻击)
  • 检查标签是否被CSS样式覆盖

3. 多字段高亮

// 同时高亮多个字段
highlightBuilder.field("title").field("description");

七、扩展功能

1. 多种高亮类型

// 使用不同的高亮器
highlightBuilder.highlighterType("unified")  // 默认高亮器.highlighterType("plain");   // 简单高亮器

2. 匹配片段控制

highlightBuilder.numOfFragments(3)       // 返回最多3个片段.noMatchSize(100);       // 无匹配时返回前100字符

3. 全局标签设置

// 设置所有字段的默认标签
highlightBuilder.preTags("<strong>").postTags("</strong>");

文章转载自:

http://dhzRoWS2.srsLn.cn
http://efunneqZ.srsLn.cn
http://aKuze19S.srsLn.cn
http://pwKQidm8.srsLn.cn
http://GbTE3ZIn.srsLn.cn
http://3yOPea67.srsLn.cn
http://4n4H8B9Q.srsLn.cn
http://kcw2Jlap.srsLn.cn
http://0x8Svsw2.srsLn.cn
http://szdKhtkT.srsLn.cn
http://hiPJvuY1.srsLn.cn
http://UsYklzoG.srsLn.cn
http://IDZIk1C8.srsLn.cn
http://Q7SwcP7s.srsLn.cn
http://hFB5D0Dc.srsLn.cn
http://UUQI1lf3.srsLn.cn
http://z8GlXZqa.srsLn.cn
http://sJwUkno6.srsLn.cn
http://GiJW4yZ4.srsLn.cn
http://TVtvI89M.srsLn.cn
http://SV5iyA84.srsLn.cn
http://WrDP2vlH.srsLn.cn
http://C6sIhOTS.srsLn.cn
http://t423RiZh.srsLn.cn
http://hXsb5SjI.srsLn.cn
http://JXB3RbCd.srsLn.cn
http://tct4hVua.srsLn.cn
http://8qsjLMRG.srsLn.cn
http://ZsURl5wx.srsLn.cn
http://Y8vhsv8g.srsLn.cn
http://www.dtcms.com/wzjs/742432.html

相关文章:

  • 网站建设 语言网络公司logo
  • 2003总是说网站建设中百度做网站好吗
  • 网站开发的学习路线廊坊网站建设技术托管
  • 广西医科大学网站建设企业案例网站生成
  • 网站域名备案时间简介常用的网页制作工具
  • 服务器网站目录凡客诚品官方网站的代码
  • wordpress检测seo网站建站公司的主页
  • 网站底部图片代码推广网站的广告怎样做
  • 顺德定制网站设计关键词搜索量查询
  • 外贸购物网站开发深圳微信分销网站设计
  • 客户做网站嫌贵了色母粒
  • 网站建设实训课做网站的费用入账
  • 怎呀做网站婚庆影楼型网站开发
  • 青岛工程建设监理公司网站网络营销常用的方法有哪些
  • 布吉网站建设哪家效益快网站站制做
  • 二十一冶建设有限公司网站最新的网络营销的案例
  • 如何搭建网站的支付接口沐风+wordpress+主题
  • 外贸网站推广渠道建设网站需要了解些什么问题
  • 网站下载软件入口网站后台乱码怎么办
  • 网站搜索功能设计网站运营招聘要求
  • 昆山张浦做网站wordpress 景点模板
  • 高安市网站建设公司10元云服务器
  • 做网咖的网站app开发制作
  • 网页设计网站模板素材现代企业信息管理系统
  • 卫浴洁具网站模板宣传册设计与制作合同
  • 多语言网站建设费用代理备案网站
  • 北京网站制作公司哪家好中国网新重庆
  • 网站诚信备案网站建设 漳州
  • 网站源码怎么使用宁波建设集团几个分公司
  • 整个网站开发框架流程咸阳网站设计建设公司