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

网站建设 东八区百度推广收费

网站建设 东八区,百度推广收费,wordpress置顶 显示,山东建设官方网站由于es高亮显示机制的问题。当全文内容过多,且搜索中标又少时,就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。 1.根据es的ik分词器获取搜索词的分词结果。 es部分: //中文分词解析 post /_analyze {"analyzer":"…

由于es高亮显示机制的问题。当全文内容过多,且搜索中标又少时,就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。
1.根据es的ik分词器获取搜索词的分词结果。
es部分:

//中文分词解析
post /_analyze
{"analyzer":"ik_smart","text":"谷歌浏览器"
}//结果
{"tokens": [{"token": "谷歌","start_offset": 0,"end_offset": 2,"type": "CN_WORD","position": 0},{"token": "浏览器","start_offset": 2,"end_offset": 5,"type": "CN_WORD","position": 1}]
}

注意:ik_smart 是最粗颗粒度,不会有重复分词。ik_max_word 是最细颗粒度,会有重复分词。高亮显示只需要最粗即可。
ik_smart:
在这里插入图片描述
ik_max_word:
在这里插入图片描述

将es的语句转为Java语句:

//主要使用的包
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.client.Request;
import org.elasticsearch.client.Response;
import org.elasticsearch.client.RestHighLevelClient;@Resourceprivate RestHighLevelClient restHighLevelClient;/*** 获取到es的分词结果** @param searchContent 查询关键字* @return 分词结果*/private List<String> getAnalyze(String searchContent) {List<String> tokens = new ArrayList<>();if (StringUtils.isNotEmpty(searchContent)) {String endpoint = "/_analyze";String body = "{\n" +"  \"analyzer\": \"ik_smart\",\n" +"  \"text\": \"" + searchContent + "\"\n" +"}";try {Request request = new Request("POST", endpoint);request.setJsonEntity(body);Response response = restHighLevelClient.getLowLevelClient().performRequest(request);InputStream content = response.getEntity().getContent();JsonNode jsonNode = objectMapper.readTree(content);if (jsonNode.has("tokens")) {for (JsonNode token : jsonNode.get("tokens")) {tokens.add(token.get("token").asText());}}} catch (IOException | UnsupportedOperationException e) {log.error("ES查询分词异常", e);}}return tokens;}

2.根据获取到的多个分词数据。替换全文内容。

    /*** 根据多个需要替换的字符,高效替换全文数据* @param replaceStrList 替换字符* @param content 全文* @return 高亮显示的全文*/private String replaceHighlight(List<String> replaceStrList, String content) {StringBuffer result = new StringBuffer();try {Map<String, String> replacements = new HashMap<>();for (String replaceStr : replaceStrList) {replacements.put(replaceStr, "<font class='eslight'>" + replaceStr + "</font>");}Pattern pattern = Pattern.compile(String.join("|", replacements.keySet()));Matcher matcher = pattern.matcher(content);while (matcher.find()) {matcher.appendReplacement(result, replacements.get(matcher.group(0)));}matcher.appendTail(result);} catch (Exception e) {log.error("替换高亮显示异常", e);}return result.toString();}

此时就能将全文关键词以分词的效果高亮显示了。

http://www.tj-hxxt.cn/news/24721.html

相关文章:

  • 织梦资源下载站网站模板简述如何对网站进行推广
  • 微信公众号的网站百度公司招聘2022年最新招聘
  • 网站设置子目录和业务多一样的平台
  • 抓取的网站如何做seo微信公众号软文怎么写
  • 网站建设面临的困难什么软件可以推广自己的产品
  • 公司网站建设开源平台下载百度手机助手
  • 惠东网站建设东莞网站推广优化公司
  • 早期做网站 如何推广百度客服中心电话
  • 做视频网站注意什么品牌推广活动有哪些
  • 政府网站建设工作网站流量排名查询工具
  • 光谷做网站推广价格网页设计培训教程
  • 上海商业网站建设费用新手怎么开始做电商
  • 深圳企业排名优化网站推广教程整站
  • 集团高端网站高质量软文
  • 网站分站作用软文推广渠道
  • 日本做鸡做爱成人网站播放百度seo怎么操作
  • 高端做网站价格seo的搜索排名影响因素主要有
  • 在上海做网站全网自媒体平台
  • 商丘高端网站建设域名购买哪个网站好
  • 微信网站开发模板网络营销策略包括哪些
  • wordpress 密码加密方式郑州网站建设推广优化
  • 做视频的网站带模板seo网络优化是什么工作
  • 海外网站测速2023年7月最新疫情
  • wordpress10和3优先级湖南网站建设推广优化
  • 做网站宣传有用吗做网页设计的软件
  • 网站设计的软件seo公司上海牛巨微
  • 企业网站排名怎么优化成人技术培训班有哪些种类
  • 章丘网站建设郑州网站策划
  • 做网站先做前台还是后台市场营销策划公司
  • 南昌公司网站建设公司永久免费无代码开发平台网站