06.中文分析器IKAnalyzer

为什么需要使用IKAnalyzer

  • Lucene自带的标准分析器无法中文分词
  • Lucene自带的中文分析器分词不准确
  • IKAnalyzer支持屏蔽关键词、新词汇的配置

使用示例

建立索引时

QueryParser查询时

单独使用进行分词

自定义词库

  1. 在classpath下定义IKAnalyzer.cfg.xml文件,如下:
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
  4. <properties>
  5. <comment>IK Analyzer 扩展配置</comment>
  6. <!-- 用户可以在这里配置自己的扩展字典 -->
  7. <entry key="ext_dict">dicdata/mydict.dic</entry>
  8. <!-- 用户可以在这里配置自己的扩展停用词字典 -->
  9. <entry key="ext_stopwords">dicdata/ext_stopword.dic</entry>
  10. </properties>
  11. 在classpath下的编辑dicdata/mydict.dic文件,此文件中存储扩展词库,在dicdata/ext_stopword.dic文件中存放停用词。
  12. 注意:mydict.dic和ext_stopword.dic文件的格式为UTF-8,注意是无BOM 的UTF-8 编码。

查看分词效果

  1. //创建分析器
  2. Analyzer analyzer = new IKAnalyzer();
  3. //得到TokenStream
  4. TokenStream tokenStream = analyzer.tokenStream("content", new StringReader("Lucene is a Java full-text search engine"));
  5. //设置tokenStream初始状态,否则会抛异常
  6. tokenStream.reset();
  7. //设置要获取分词的偏移量
  8. OffsetAttribute offsetAttribute = tokenStream.addAttribute(OffsetAttribute.class);
  9. //设置要获取分词的项
  10. CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
  11. while(tokenStream.incrementToken()){
  12. System.out.println("-----------------");
  13. //起始偏移量
  14. System.out.print("-->"+offsetAttribute.startOffset());
  15. //截止偏移量
  16. System.out.print("-->"+offsetAttribute.endOffset());
  17. //分词项的值
  18. System.out.println("-->"+new String(charTermAttribute.toString()));

注意

  • 使用什么分析器建立索引最好使用相同的分析器查询
  • IKAnalyzer的配置文件名称可以自定义
时间: 2024-08-02 07:33:43

06.中文分析器IKAnalyzer的相关文章

solr 配置中文分析器/定义业务域/配置DataImport功能(测试用)

一.配置中文分析器    使用IKAnalyzer    配置方法:        1)把IK的jar包添加到solr工程中/WEB-INF/lib目录下        2)把IK的配置文件扩展词典,放到classpath下./WEB-INF/classes目录下        3)在schema.xml中定义FieldType,指定使用IK作为分析器 <!-- IKAnalyzer--> <fieldType name="text_ik" class="s

在Solr中配置中文分词IKAnalyzer

李克华 云计算高级群: 292870151 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch 在Solr中配置中文分词IKAnalyzer 1.在配置文件schema.xml(位置{SOLR_HOME}/config/下),配置信息如下: <!-- IKAnalyzer 中文分词-->     <fieldType name="text_ik" class="solr.TextField">         <

配置solr4.10.0和中文分词IKAnalyzer

全文索引服务solr搭建.公司最近要用到.我又是个java小白.做环境的什么的不再行.就此几下操作. 大部分是看官方提供的reference.pdf来做的,也google了不少.公司还有个大哥指点....笨的可以. 环境如下 OS: centos6.5 java环境: jdk1.7.0_51 tomcat版本: apache-tomcat-7.0.55 solr版本: solr-4.10.0 中文分词插件: IKAnalyzer2012FF_u1 另需准备mysql-connector-java

Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)

之前在 Solr6.5在Centos6上的安装与配置 (一) 一文中介绍了solr6.5的安装.这篇文章主要介绍创建Solr的Core并配置中文IKAnalyzer分词和拼音检索. 一.创建Core: 1.首先在solrhome(solrhome的路径和配置见Solr6.5在Centos6上的安装与配置 (一)中solr的web.xml)中创建mycore目录; [[email protected] down]# [[email protected] down]# mkdir /down/apa

solr增加中文分析器

我的solr版本是5.3.0 1将jar包ik-analyzer-solr5-5.x.jar放入sor的web-inf的lib里面 2 在web-inf下面新建classes目录,再新增三个配置文件: IKAnalyzer.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/propertie

solr 5.5.1安装并配置中文分词IKAnalyzer

http://www.360doc.com/content/16/0623/17/5131531_570184594.shtml —————————————————————————————————————————————————————————— https://github.com/EugenePig/ik-analyzer-solr5

lucene入门&amp;Solr

LUCENE 1. 学习计划 1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3.配置开发环境 4.创建索引库 5.查询索引库 6.分析器的分析过程 a) 测试分析器的分词效果 b) 第三方中文分析器 7.索引库的维护 a) 添加文档 b) 删除文档 c) 修改文档 8.Lucene的高级查询Lucene的查询 a) 使用Query的子类查询 MatchAllDocsQuery TermQuery NumericRangeQue

Lucene使用IKAnalyzer分词

1.分析器    所有分析器最终继承的类都是Analyzer        1.1 默认标准分析器:StandardAnalyzer            在我们创建索引的时候,我们使用到了IndexWriterConfig对象,在我们创建索引的过程当中,会经历分析文档的步骤,就是分词的步骤,默认采用的标准分析器自动分词                                    1.1.1 查看分析器的分析效果 public static void main(String[] arg

中文分词器的总结

0 -- Lucene & Nutch是一种神奇的东西,包含了语义分析,自然语言处理,中文分析,网络爬取,索引建立,html解析等,下面介绍几种常用的中文分词工具 图 搜索引擎的框架 1 -- StandardAnalyzer标准分析器,能够根据空格.符号.数字.字母.E-mail地址.IP地址以及中文字符的分析处理分割原始的文本信息,还可以支持过滤词表,用来替代StopAnalyzer能够完成的过滤功能.只是,中文文字没有完成中文分词的功能,只是按照单个的汉字进行了分割. 2 -- CJKAn