最近项目用了IK分词器,版本是IKAnalyzer2012_u5
IK分词提供智能分词和非智能分词2种分词模式,new IKAnalyzer(boolean useSmart),
问题:
1.请问一下:useSmart这个值是全局的吗?
IndexWriter用的是非智能分词器new IKAnalyzer(false),在建索引的过程中,我又创建了另一个智能分词器new IKAnalyzer(true),并用它做了一次分词处理,然后上面IndexWriter的分词器也变成智能分词了?,分词的结果是智能分词的,这是不是有bug啊?
详细见代码。
- public static void write() throws CorruptIndexException, LockObtainFailedException, IOException {
- //创建的是非智能分词,结果是非智能分词,结果是:中国/黄海/海军/军演/,没有问题。
- IndexWriter writer = new IndexWriter(FSDirectory.open(file), new IndexWriterConfig(Version.LUCENE_36, new IKAnalyzer(false)));
- Document doc = new Document();
- Field field = new Field("title", "中国黄海军演", Store.YES, Index.ANALYZED);
- doc.add(field);
- try {
- writer.addDocument(doc);
- writer.commit();
- } catch (CorruptIndexException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //创建了一个智能分词器,使用这个分词器做了一次分词处理
- Analyzer ik = new IKAnalyzer(true);
- TokenStream ts = ik.tokenStream("", new StringReader("联合国儿童基金会"));
- CharTermAttribute att = (CharTermAttribute) ts.getAttribute(CharTermAttribute.class);
- while (ts.incrementToken()) {
- System.out.print(att.toString()+"/"); //打印分词结果
- }
- //还是之前的indexWriter,这次建立的索引都是智能分词的结果。结果为:联合国儿童基金会,就一个词了,有问题,非智能分词结果应该是:联合国儿童基金会/联合国/联合/国/儿童/基金会/基金
- Document doc1 = new Document();
- Field field1 = new Field("title", "联合国儿童基金会", Store.YES, Index.ANALYZED);
- doc1.add(field1);
- try {
- writer.addDocument(doc1);
- writer.commit();
- } catch (CorruptIndexException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- writer.close();
- }
按理来说这2个analyzer分词器对象应该是互不影响的,我推测里面useSmart变成共用的变量了。
相关推荐
版本7.10.2是IK分词器的一个稳定版本,为Elasticsearch 7.x系列提供了良好的支持。 **Elasticsearch简介** Elasticsearch是一款基于Lucene的开源搜索引擎,以其分布式、实时、高可扩展性以及全文检索能力而广受...
2. **修改schema.xml**:在Solr的配置文件schema.xml中,我们需要定义一个或多个字段类型(fieldType),并指定使用IK分词器。例如,可以创建一个名为`text_ik`的字段类型,配置如下: ```xml ...
1. **版本不兼容**:如果遇到版本不兼容的问题,可以尝试下载其他版本的 IK 分词器,或者升级 Elasticsearch 至更高版本。 2. **构建失败**:确保环境中已经正确安装了 Maven,并且版本与项目要求一致。此外,检查...
3. **对最终的分词结果进行歧义处理**:分词过程中可能会出现一个词语被多次切割的情况,这时就需要根据特定的策略来解决这种歧义,以确保输出最合理的分词结果。 值得注意的是,IK分词器默认开启了大小写转换功能...
2. **最大切分模式**:当遇到一个词时,IK会尝试尽可能多地切分,以获取更细粒度的词语。 3. **最小切分模式**:相反,它也会尝试找到最短的合法切分,以避免过度切分。 4. **自定义扩展词典**:用户可以根据需求...
IK分词器是Java开发的一款高效、灵活的中文分词工具,主要应用于全文检索和自然语言处理领域。它由Liu Xiao Dong和Ma Shangbo共同创建,最初是为了支持Lucene搜索引擎而设计的。源码分析有助于理解其内部工作原理,...
文件`ikanalyzer-solr5`可能是一个包含IK分词器的Solr插件包,用于Solr 5版本,虽然与标题中的Solr 6.5不完全匹配,但在实际应用中,IK分词器的版本通常与Solr版本保持一致,以确保最佳兼容性和性能。如果需要在Solr...
在Elasticsearch 7.7.1环境中,安装IK分词器通常包括以下几个步骤: 1. 下载:首先从官方渠道或第三方仓库获取`elasticsearch-analysis-ik-7.7.1.zip`压缩包。 2. 解压:将下载的压缩包解压到Elasticsearch的...
对于开发者来说,拥有源码可以深入了解ik分词器的工作原理,进行定制化开发,或者排查可能遇到的问题。 **核心功能与特性** 1. **动态词典加载**:Ik Analyzer支持动态加载和更新词典,方便维护和扩展。 2. **智能...
IK Analyzer 是一个开源的、基于Java实现的中文分词工具,主要用于对中文文本进行高效、准确的分词处理。它最初由尹春林(yincunlin)开发,后来发展成为一个社区维护的项目,得到了众多开发者和使用者的支持与贡献...
它最初由马明练发起,现在已经成为Apache Lucene和Solr项目中的一个重要组件,广泛应用于搜索引擎、信息检索、自然语言处理等领域。 **分词器的作用** 在中文文本处理中,分词是基础步骤,它将连续的汉字序列切分成...
如果直接使用Elasticsearch的朋友在处理中文... 这是因为使用了Elasticsearch中默认的标准分词器,这个分词器在处理中文的时候会把中文单词切分成一个一个的汉字,因此引入es之中文的分词器插件es-ik就能解决这个问题。
Solr是Apache Lucene项目下的一个...在实际操作中,可能会遇到各种问题,如版本兼容性、网络配置、内存调优等,都需要根据具体情况进行解决。通过熟练掌握这些知识,你可以成功地构建一个高效、稳定的Solr搜索服务。
IKAnalyzer是一款开源的、适用于Java环境的中文分词器,主要用于解决在信息检索、文本挖掘等领域中遇到的中文处理问题。这款分词器的设计目标是提高分词的准确率,并且具有良好的可扩展性,能够方便地与其他Java应用...
IkAnalyzer采用的是基于词典的分词方法,它通过建立一个庞大的中文词汇库,当遇到新的文本时,会尝试将文本拆分成词典中的词汇。同时,IkAnalyzer还支持用户自定义扩展词典,以便添加特定领域的词汇或专有名词。此外...
`elasticsearch-analysis-ik` 是一个专门为 Elasticsearch 设计的高性能、高度可定制的中文分词插件。本文将详细介绍 `elasticsearch-analysis-ik-7.7.0` 分词器及其安装步骤,以及可能遇到的问题和解决方案。 首先...
压缩包中的`readme.txt`文件应该包含了详细的步骤和可能遇到的问题解决方案。 6. **优化与维护**:为了保持搜索性能,需要定期更新词典,特别是对于行业新词或热门词汇。此外,监控Solr的日志,检查可能出现的错误...
然而,根据描述,这个7.2.0版本的IK分词器存在一个问题:尽管其名称显示为7.2.0,但实际上解压后的内容仍然是7.0.0版本。这意味着用户在使用时可能会遇到兼容性问题,因为分词器版本与Elasticsearch的实际版本不匹配...
在这个入门教程中,我们将使用Lucene 4.7版本,结合IK Analyzer,一个专门针对中文分词的开源分析器,来学习如何构建一个简单的搜索引擎。 首先,你需要下载Lucene 4.7和IK Analyzer 2012-FF Hotfix 1。Lucene的...
ikanalyzer中文分词支持lucene7.1.0是一个针对Lucene搜索引擎的中文分词扩展,由林良益先生开发,旨在提供高效、精准的中文词汇拆解功能。Lucene是一个开源全文检索库,它提供了索引和搜索文本的强大工具。然而,...