IK分词源码下载地址:https://code.google.com/p/ik-analyzer/downloads/list

lucene源码下载地址:http://www.eu.apache.org/dist/lucene/java/

下载IK分词源码后,运行出现错误提示:

Analyzer cannot be resolved to a type
TokenStream cannot be resolved to a type
OffsetAttribute cannot be resolved to a type
OffsetAttribute cannot be resolved to a type
CharTermAttribute cannot be resolved to a type
CharTermAttribute cannot be resolved to a type
TypeAttribute cannot be resolved to a type
TypeAttribute cannot be resolved to a type

解决办法:

在项目project -->clean 下即可

自定义分词规则步骤:

里面的例子:

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry; import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
import org.wltea.analyzer.lucene.IKAnalyzer;
public static void main(String[] args) {
String testString = "张柏芝士蛋糕房 ZHANG'S CAKE SHOP,网友们Hold不住了:宋祖英语培训班、周渝民政服务中心、容祖儿童医院、吴奇隆胸医院、苏永康复中心、梁朝伟哥专卖、陈冠希望小学、吴彦祖传中医坊、林书豪华酒店";
iktest1(testString);
} // 实现普通分词
public static Map<String, Object> iktest1(String testString){
Map<String, Object> resultsMap = new HashMap<String, Object>();
Analyzer ikAnalyzer = new IKAnalyzer(true);
TokenStream ts = null;
try {
ts = ikAnalyzer.tokenStream("myik", testString);
//词元位置属性
OffsetAttribute offset = ts.addAttribute(OffsetAttribute.class);
//词文本属性
CharTermAttribute term = ts.addAttribute(CharTermAttribute.class);
//词文本属性
TypeAttribute type = ts.addAttribute(TypeAttribute.class);
ts.reset();
while (ts.incrementToken()){
resultsMap.put("获得分词", term.toString());
for (Object obj : resultsMap.entrySet()) {
Entry entry = (Entry) obj;
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println(key + ":" + value);
}
//System.out.println(resultsMap);
// System.out.println(offset.startOffset() + " - " + offset.endOffset() + " : " + term.toString() + " | " + type.type());
}
ts.end();
} catch (IOException e) {
e.printStackTrace();
} finally{
if (ts != null){
try {
ts.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return resultsMap;
} //实现只能分词2
public static void testik02(){ }

分词结果:

获得分词:张柏芝
获得分词:士
获得分词:蛋糕
获得分词:房
获得分词:zhang
获得分词:s
获得分词:cake
获得分词:shop
获得分词:网友
获得分词:们
获得分词:hold
获得分词:不
获得分词:住了
获得分词:宋祖英
获得分词:语
获得分词:培训班
获得分词:周渝民
获得分词:政
获得分词:服务中心
获得分词:容祖儿
获得分词:童
获得分词:医院
获得分词:吴奇隆
获得分词:胸
获得分词:医院
获得分词:苏永康
获得分词:复
获得分词:中心
获得分词:梁朝伟
获得分词:哥
获得分词:专卖
获得分词:陈冠希
获得分词:望
获得分词:小学
获得分词:吴彦祖
获得分词:传
获得分词:中医
获得分词:坊
获得分词:林
获得分词:书
获得分词:豪华酒店

这样分词不是很智能,分词需要我们自己设置。

存在的问题 还需要定义歧义字典。但是ik不支持歧义字典

利用IK分词器,自定义分词规则的更多相关文章

  1. ES 09 - 定制Elasticsearch的分词器 (自定义分词策略)

    目录 1 索引的分析 1.1 分析器的组成 1.2 倒排索引的核心原理-normalization 2 ES的默认分词器 3 修改分词器 4 定制分词器 4.1 向索引中添加自定义的分词器 4.2 测 ...

  2. 【ELK】【docker】【elasticsearch】2.使用elasticSearch+kibana+logstash+ik分词器+pinyin分词器+繁简体转化分词器 6.5.4 启动 ELK+logstash概念描述

    官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod ...

  3. 用lucene4.10.2分词器进行分词

    import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.apache.luc ...

  4. thinkPHP5.0验证器自定义验证规则

    自定义验证规则 protected $rule = [ 'views' => 'require|number|checkviews:0',//checkviews为自定义验证规则,0是传过去的规 ...

  5. es的分词器analyzer

    analyzer   分词器使用的两个情形:  1,Index time analysis.  创建或者更新文档时,会对文档进行分词2,Search time analysis.  查询时,对查询语句 ...

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

    如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...

  7. Lucene 03 - 什么是分词器 + 使用IK中文分词器

    目录 1 分词器概述 1.1 分词器简介 1.2 分词器的使用 1.3 中文分词器 1.3.1 中文分词器简介 1.3.2 Lucene提供的中文分词器 1.3.3 第三方中文分词器 2 IK分词器的 ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十九)ES6.2.2 安装Ik中文分词器

    注: elasticsearch 版本6.2.2 1)集群模式,则每个节点都需要安装ik分词,安装插件完毕后需要重启服务,创建mapping前如果有机器未安装分词,则可能该索引可能为RED,需要删除后 ...

  9. solr配置相关:约束文件及引入ik分词器

    schema.xml: solr约束文件 Solr中会提前对文档中的字段进行定义,并且在schema.xml中对这些字段的属性进行约束,例如:字段数据类型.字段是否索引.是否存储.是否分词等等 < ...

  10. Lucene介绍及简单入门案例(集成ik分词器)

    介绍 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和 ...

随机推荐

  1. CentOS 7 挂载ntfs分区!

    装好centos7发现可以看到分区,可是打不开,还是得用ntfs-3g 官网下好 http://www.tuxera.com/community/ntfs-3g-download/ 然后解压tar - ...

  2. 选择排序-Python & Java

    选择排序:1.找出最小的数值放在第一位2.找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值 算法的时间复杂度为:O(n) ''' 选择排序: 1.找出最小的数值放在第一位 2.找出剩余数 ...

  3. STM32时钟初始化函数SystemInit()详解【转】

    花了一天的时间,总算是了解了SystemInit()函数实现了哪些功能,初学STM32,,现记录如下(有理解错误的地方还请大侠指出): 使用的是3.5的库,用的是STM32F107VC,开发环境RVM ...

  4. 搭建单机版spark

    二.下载软件 JDK,Scala,SBT,Maven 版本信息如下: JDK jdk-7u79-linux-x64.gz Scala scala-2.10.5.tgz 三.解压上述文件并进行环境变量配 ...

  5. IntelliJ快捷键记录

    1.自动补全返回类型及变量:Ctrl+Alt+V2.大小写转换:Ctrl+Shift+U3.get/set方法快捷键:Alt+Insert4. 查看类继承关系:Ctrl+H或者Ctrl+Shift+A ...

  6. img路径错误时,用户友好图片

    img 标签的属性里面添加 onerror="this.src='error友好图片'" 就可以了!

  7. jQuery validate验证隐藏表单(hidden)域

    validate很不错的一个jQuery表单验证插件.升级到了1.9版的后,发现隐藏表单域验证全部失效,特别是在jquery.ui.tabs.min.js构造的Tabs里的验证!网上一搜,也没查到是怎 ...

  8. firewall防火墙配置

    获取所有zone firewall-cmd --list-all-zones 重启服务 firewall-cmd --complete-reload 名词解释 在具体介绍zone之前学生先给大家介绍几 ...

  9. certbot免费证书

    yum install python-certbot-nginx 开启防火墙443端口 firewall-cmd --add-port=443/tcp --permanent 别忘了重启 firewa ...

  10. 【Linux】- Systemd 命令篇

    转自:阮一峰的网络日志 Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置. 一.由来 历史上,Linux 的启动一直采用init进程. 下面的命令用来启动服务. ...