Solr 分词器(analyzer)是怎么传到Luence的
(2011-11-02 17:41:48)
Solr的分词器我们都知道,是配置在schema.xml配置文件中,不同的fieldType我们都可以给他配置分词器。Solr有两个地方分别是创建索引(INDEX)和查询(query),通过Solr的源码如下:
if (queryAnalyzer==null) queryAnalyzer=analyzer;
if (analyzer==null) analyzer=queryAnalyzer;
if (analyzer!=null) {
ft.setAnalyzer(analyzer);
ft.setQueryAnalyzer(queryAnalyzer);
}
queryAnalyzer 为查询时用到的分词器, analyzer为建索引时用到的分词器。从上面可以看出,如果我们没有配查询的分词 器,则用创建的分词器,同理,如果创建时的分词器为空,则用查询的分词器。如果两个都为空,就是没有分词器了。
注意,这里的analyzer和queryAnalyzer 都是TokenizerChain,里面包含了一个分词器的链。
主要问题是,Solr是在什么时候用到这些分词器的呢,通过调试,发现,Solr是在DirectUpdateHandler2的addDoc(AddUpdateCommand cmd)方法里面的两行代码如下:
synchronized (this) {
// adding document -- prep writer
openWriter();
tracker.addedDocument( cmd.commitWithin );
} // end
addDoc方法是我们新建索引时调用的。openWriter是打开indexWriter,这里会判断indexWriter是否为空,如果为空则会创建一个createMainIndexWriter实例,代码如下:
if (writer==null) {
writer = createMainIndexWriter("DirectUpdateHandler2", false); //这里就是new一个SolrIndexWriter实例
}
createMainIndexWriter方法就是new一个SolrIndexWriter实例,会传一个schema给SolrIndexWriter通过构造函数。
SolrIndexWriter继承luence的IndexWriter,创建indexWriter时会把schema的analyzer传给IndexWriterConfig。
这样luence的indexWriter就分词器就保存在IndexWriterConfig上。
分享到:
相关推荐
solr-ik分词器的资源包,包括:ext.dic;ikanalyzer.cfg.xml;ik-analyzer-solr5-5.x.jar;solr-analyzer-ik-5.1.0.jar;stopword.dic 五个文件
"solr分词 IKAnalyzer2012FF_hf1.rar" 包含的是一个针对Solr优化的IK分词器版本,即IKAnalyzer2012FF_hf1。这个版本在原版IKAnalyzer的基础上进行了改进,提高了对中文词汇的处理能力,特别是对于复杂语境和新词识别...
Solr分词器是Apache Solr搜索引擎中的一个重要组件,它负责对输入的文本进行分词处理,以便于索引和查询。在理解Solr分词器之前,我们首先要明白Solr是一个开源的企业级搜索平台,它提供了高效、可扩展的全文检索、...
Solr分词器是搜索引擎Apache Solr中的一个重要组件,它负责对输入的文本进行分析,将其拆分成可索引的基本单元——词语。"k-analyzer-solr" 是一个特定的分词器实现,用于优化Solr的文本处理流程。在Solr中,分词器...
Solr中的IKAnalyzer分词器是处理中文文本的关键组件,它能有效提升搜索质量和效率。通过对`schema.xml`的配置,我们可以定制化分词策略,以满足具体业务的需求。IKAnalyzer 2012FF_hf1版本的出现,旨在提供更快更...
1. **下载与解压**:获取ik-analyzer-7.5.0.jar文件,解压缩后将jar包放入Solr的lib目录下,确保Solr运行时能加载到该分词器。 2. **配置Solr schema.xml**:在Solr的schema.xml文件中,定义字段类型(fieldType),...
ikanalyzer 是一个专门为Java开发的中文分词器,它基于 Lucene 库,适用于各种文本处理和搜索引擎场景。在 Solr 环境中,ikanalyzer 的作用是为中文文档提供精确的分词服务,从而提升搜索质量和效率。Solr8.4.0 是 ...
### Solr分词器使用手册知识点详解 #### 一、Solr概述 - **定义**:Solr是一款基于Java开发的、由Apache基金会维护的顶级开源项目,它是一款高性能的全文检索服务器。Solr不仅继承了Lucene的核心索引与搜索能力,还...
solr分词器,solr分词器-ik-analyzer.7.4.0.jar7.4.0版本
Solr是中国最流行的开源搜索引擎平台之一,而IK Analyzer是一款针对中文的高性能分词器,尤其在处理现代汉语的复杂情况时表现出色。本教程将详细解释如何在Solr中安装和使用IK分词器。 首先,让我们理解一下什么是...
对于处理中文文档,一个合适的中文分词器是必不可少的,IKAnalyzer就是这样一个解决方案。 IKAnalyzer在Solr中的集成使得用户可以方便地在Solr中使用它进行中文文本的预处理,包括分词、去停用词等步骤,这对于提高...
自定义的Solr 分词器,可以通过竖线"|"来分词,可以在博客http://blog.csdn.net/jiangchao858/article/details/68954044看到生成过程与使用步骤。
Solr中文分词器是Apache Solr搜索引擎系统中用于处理中文文本的核心组件,它使得Solr能够对中文文档进行有效的索引和搜索。在Solr中,分词器(Tokenizer)是分析器(Analyzer)的一部分,负责将输入的文本拆分成可被...
在Solr中,分词器是搜索引擎索引和查询过程中的关键组件。IK Analyzer与Solr结合使用,可以对输入的中文文本进行精确、高效的分词,从而提升搜索质量和速度。 4. **IKAnalyzer2012FF_u1特性**: - 支持用户自定义...
Solr和IK Analyzer是两个在中文分词和全文检索领域常用的工具。Solr是一个开源的搜索服务器,由Apache Lucene项目提供支持,它允许开发者构建和维护高度可扩展的、高性能的搜索应用。而IK Analyzer是一款针对中文的...
在 Solr 中,分词器(Tokenizer)和分析器(Analyzer)是构建高效搜索索引的关键组件。分词器将输入的文本拆分成一系列的词语,而分析器则包括了分词器和其他过滤器,如去停用词、词形还原等,以优化搜索效果。 ...
solr6的中文分词器ik-analyzer-solr-6.0.jar,在solr上亲测可用
描述中提到的"solr中文分词器 IKAnalyzer 支持solr版本5.x到7.x 亲测可用,我用的是7.2版本"进一步证实了IKAnalyzer在Solr 7.2版本中的实际应用,这为其他用户提供了信心,确保了在不同Solr版本下的稳定运行。...
同时,还需要将ikanalyzer-solr5的jar包添加到Solr的lib目录下,确保在启动Solr时能够正确加载分词器的类库。 为了进一步优化IK分词器的性能,我们可以考虑以下几点: 1. 调整词典:根据业务需求定制词典,增加专业...