1.概述

转载:总结 | Elasticsearch对外提供分词服务实践

2. 问题抛出?

实战开发应用场景中,有获取一段话、一篇文章词频的业务场景,
词频的前提就是分词。
常用的中文分词包括:

  1. IK分词——https://github.com/medcl/elasticsearch-analysis-ik
  2. 结巴分词——https://github.com/huaban/elasticsearch-analysis-jieba
  3. ANSJ分词——https://github.com/NLPchina/elasticsearch-analysis-ansj

实际开发中,我们可以借助以上分词工具封装成接口或服务进行分词。
但,有没有想过,借助Elasticsearch的分词插件直接实现分词呢并对外提供服务呢?

这里是不是可以写一个针对多种分词器查看的效果呢?

2、可行性

  1. Elasticsearch对中文的处理,倒排索引的前置条件就是中文分词。而分词,我们常用的就是IK分词插件。
  2. 正常ES的部署、开发设计时候就提前选好分词器。

综上,借助Elasticsearch实现分词完全没有问题。

3 Elasticsearch中的DSL实现

GET test_index/_analyze
{"analyzer":"ik_smart","text":"9年后,我还是没有跑出去 | 震后余生"
}

返回结果:

{"tokens": [{"token": "9","start_offset": 0,"end_offset": 1,"type": "ARABIC","position": 0},{"token": "年后","start_offset": 1,"end_offset": 3,"type": "CN_WORD","position": 1},{"token": "我","start_offset": 4,"end_offset": 5,"type": "CN_WORD","position": 2},{"token": "还是","start_offset": 5,"end_offset": 7,"type": "CN_WORD","position": 3},{"token": "没有","start_offset": 7,"end_offset": 9,"type": "CN_WORD","position": 4},{"token": "跑出去","start_offset": 9,"end_offset": 12,"type": "CN_WORD","position": 5},{"token": "震后","start_offset": 15,"end_offset": 17,"type": "CN_WORD","position": 6},{"token": "余生","start_offset": 17,"end_offset": 19,"type": "CN_WORD","position": 7}]
}

3、Elasticsearch Java接口实现

以下是基于Jest5.3.3的接口实现。

/*
*@brief:获取分词结果接口
*@param:待分词的文章/字符串
*@return:不重复分词结果集(可根据实际业务场景二次开发)
*@date:20180704
*/
public static String IK_TYPE = "ik_smart";
public static Set<String> getIkAnalyzeSearchTerms(String searchContent) {  // 调用 IK 分词分词JestClient client = JestHelper.getClient();Analyze ikAnalyze = new Analyze.Builder().index(TEST_INDEX).analyzer(IK_TYPE).text(searchContent).build();JestResult result = null;Set<String> keySet = new HashSet<String>();try {result = client.execute(ikAnalyze);JsonArray jsonArray = result.getJsonObject().getAsJsonArray("tokens");int arraySize = jsonArray.size();for (int i = 0; i < arraySize; ++i) {JsonElement curKeyword = jsonArray.get(i).getAsJsonObject().get("token");//Logger.info("rst = " + curKeyword.getAsString());keySet.add(curKeyword.getAsString());}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return keySet;}

【Elasticsearch】 Elasticsearch对外提供分词服务实践相关推荐

  1. Elasticsearch对外提供分词服务实践

    1.问题抛出? 实战开发应用场景中,有获取一段话.一篇文章词频的业务场景,  词频的前提就是分词.  常用的中文分词包括:  1.IK分词--https://github.com/medcl/elas ...

  2. 对外提供dubbo服务的最佳实践

    为什么80%的码农都做不了架构师?>>>    模块介绍 share 所有需要对外开放的接口定义以及DTO client 对外提供的jar包, 需要调用本项目dubbo服务的应用, ...

  3. 家用移动光猫(型号:HS8545M5)利用公网ipv6对外提供公网服务。(100M的宽带,真香 )

    因为家里有空闲电脑,并且家里的移动宽带是100M. 想着自己的阿里云服务器才5M的带宽,这简直不是一个档次,阿里云服务器网速640k/s上限. 640k/s*20倍就相当于12M/s的网速.(太香了) ...

  4. 海量服务实践──手 Q 游戏春节红包项目设计与总结(上篇)

    导语 大哥说,今年手Q游戏的春节红包你来做.那该怎么做?以及怎么做才能让大哥放心?本文从后台的角度出发讲述了这个过程和方法,对于关键的前台部分也有所涉及. 目录 1.需求背景 1.1.红包类别 1.2 ...

  5. 6月20日云栖精选夜读丨国内首家!阿里云宣布全面提供IPv6服务

    IPv6作为下一代互联网的技术基础,对物联网.车联网.人工智能等新兴产业的发展有着重大影响.6月20日,中国云计算的领头羊阿里云宣布联合三大运营商全面对外提供IPv6服务,希望能在2025年前帮助中国 ...

  6. 【每日新闻】阿里云成中国唯一全面提供IPv6服务 | 区块链技术可以促进数据的共享以改进流程...

    点击关注中国软件网 最新鲜的企业级干货聚集地 趋势洞察 2018中国软件生态大会暨第十一届中国软件渠道大会首站在北京.天津.太原.郑州.济南站成功举行,同时拉开了覆盖上海.深圳.成都.西安等全国16个 ...

  7. Elasticsearch生态技术峰会 | Elasticsearch在企查查的应用实践

    简介: 开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范.值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elas ...

  8. 服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

    docker安装配置elasticsearch,kibana和IK分词器 elasticsearch文章系列 前置安装docker 创建docker网络 安装Elasticsearch 运行elast ...

  9. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如何在Elasticsearch中安装中文分词器(IK+pinyin) 如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当 ...

最新文章

  1. 抽象方法和接口的区别
  2. Python内置模块bisect(二分查找实现和快速插入有序序列)
  3. 将某个目录下的所有文件进行压缩
  4. linux对2k屏幕,(转)Linux中的screen命令使用
  5. .NET Core和.NET Standard有什么不同
  6. redis集群的三种模式
  7. 如何理解傅立叶级数、傅立叶变换公式?
  8. LVS三种工作模式、十种调度算法介绍
  9. anspython_python堆(heapq)的实现
  10. 常见List面试问题
  11. 李宏毅机器学习——无监督学习(二)
  12. Android重拾设计模式系列——简单工厂模式
  13. Android手机RTMP播放工具(APK,支持秒开)
  14. 《统计学》第八版贾俊平第十三章时间序列分析和预测知识点总结及课后习题答案
  15. 马斯克:让我成功的其实是工程思维
  16. python输入球的半径计算球的表面积和体积_球扇形(球心角体)体积,表面积计算公式与在线计算器_三贝计算网_23bei.com...
  17. 网站在线客服系统源码|在线客服代码下载 (2021最新版)
  18. JMeter参数大小写转换
  19. 运行VBS权限受限,需要用Run as Administrator的cmd窗口来运行
  20. 基于微信的分布式系统分析

热门文章

  1. 中国电信与中国联通启动2.1GHz 5G主设备集采,规模24万站
  2. 苏宁易购:苏宁控股、苏宁电器合计质押约5.18亿股公司股份
  3. 格力电器开始向“电动口罩”发力了?
  4. 趣头条被传与腾讯、阿里洽谈出售资产 官方回应:完全子虚乌有
  5. 网课老师凭什么年薪200万?
  6. B 站 Up主自制秃头生成器,圆你一个秃头梦?
  7. 华为一所英国研发中心建设项目获当地批准 计划总投资4亿英镑
  8. 微信上线“拍一拍”功能,结果被网友激情吐槽...
  9. 小米MIX 4 Pro“老底”被掀了,看完很激动!
  10. 拼多多董事会变更:董事6人变5人 张震不再出任