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

对网站建设心得网站运行方案

对网站建设心得,网站运行方案,模板网站没有源代码,推广网站有什么方法由于es高亮显示机制的问题。当全文内容过多#xff0c;且搜索中标又少时#xff0c;就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。 1.根据es的ik分词器获取搜索词的分词结果。 es部分#xff1a; //中文分词解析 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 ListString getAnalyze(String searchContent) {ListString 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(ListString replaceStrList, String content) {StringBuffer result new StringBuffer();try {MapString, String replacements new HashMap();for (String replaceStr : replaceStrList) {replacements.put(replaceStr, font classeslight 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.w-s-a.com/news/666877/

相关文章:

  • 江苏省建设监理协会网站汕头网站建设方案优化
  • 中国风网站配色方案正规少儿编程排名
  • 兼职做网站的软件wordpress赞的代码
  • 销售网站的技巧四博互联做的网站
  • 网站建设 图片问题小程序免费制作平台凡科网页版
  • 猪八戒网做网站怎么样网站建设 客户同程
  • 西安网站建设那家强网站建设方案 报价
  • 销售网站建设考核指标网站建设价格组成
  • 网站302跳转网站建设完成后 下一步做什么
  • 赣州制作网站企业硬件开发用什么语言
  • 新网站如何被网站收录百度排名优化软件
  • html网站简易模板国内买机票的网站建设
  • 百度关键词分析工具百度seo排名软
  • 自己怎样做免费网站ueditor 上传wordpress
  • 深圳高端网站开发网站建设公司销售技巧
  • 网站建设的优势是什么意思可拖动网站
  • 建设什么企业网站网站微信认证
  • 网站开发的平台成都有哪些好玩的
  • 上海金瑞建设集团网站怎么创建免费网页
  • 柳州做网站设计的公司制作网站软件下载
  • 湖南seo网站开发苏州网络营销及网站推广
  • 如何发布自己做的网站郑州网站建设定制开发
  • 重庆网站商城宁波网络公司联系方式
  • 个人网站建设实验心得seo课程简介
  • 免费自助建站系统下载推广app网站
  • 用scala做的网站标题关键词优化技巧
  • 百度网站评级wordpress忘记admin
  • 建筑标准下载网站263企业邮箱 登陆
  • 旅游房地产网站建设德保网站建设
  • 网站高端建设wordpress订单系统