`

Solr中的概念:分析器(analyzer)、字符过滤器(character filter)、分词器(Tokenizer)、词元过滤器(Token Filter

    博客分类:
  • solr
 
阅读更多
文本中包含许多文本处理步骤,比如:分词,大写转小写,词干化,同义词转化和许多的文本处理。

     文本分析既用于索引时对一文本域的处理,也用于查询时查询字符串的文本处理。文本处理对搜索引擎的搜索结果有着重要的影响,特别是对如召回率的影响。

       文本分析是将一个文本域的值转化为一个词序列。词是Lucene实际索引和搜索时的最小单元。分析作用于索引时原始的输入值,将转化后的词顺序保存到Lucene的索引结构中。文本分析也同样作用于查询时所输入的查询串中的查询词和查询短语,转化后的词将用于查询Lucene的索引。不用进行文本分析的查询是前缀查询,通配符查询和模糊查询。

   看下面的配置:

 <fieldType name="text_en_splitting" class="solr.TextField"   positionIncrementGap="100" autoGeneratePhraseQueries="true">
  
  <analyzer type="index">
  
 <!--<charFilter class="solr.MappingCharFilterFactory"   mapping="mapping-ISOLatin1Accent.txt"/>-->
 
 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 
  <filter class="solr.StopFilterFactory"   ignoreCase="true"   words="stopwords_en.txt"   enablePositionIncrements="true"/>
 
 <filter class="solr.WordDelimiterFilterFactory"   generateWordParts="1" generateNumberParts="1"   catenateWords="1" catenateNumbers="1"   catenateAll="0" splitOnCaseChange="1"/>
 
 <filter class="solr.LowerCaseFilterFactory"/>
 
 <filter class="solr.KeywordMarkerFilterFactory"   protected="protwords.txt"/>

 <filter class="solr.PorterStemFilterFactory"/>

 </analyzer>

 <analyzer type="query">
 
 <!--<charFilter class="solr.MappingCharFilterFactory"   mapping="mapping-ISOLatin1Accent.txt"/>-->
 
 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 
 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>

 <filter class="solr.StopFilterFactory"   ignoreCase="true"   words="stopwords_en.txt"   enablePositionIncrements="true"

 />

 <filter class="solr.WordDelimiterFilterFactory"    generateWordParts="1" generateNumberParts="1"   catenateWords="0" catenateNumbers="0" catenateAll="0"
 
 splitOnCaseChange="1"/>

 <filter class="solr.LowerCaseFilterFactory"/>
 
 <filter class="solr.KeywordMarkerFilterFactory"   protected="protwords.txt"/>

 <filter class="solr.PorterStemFilterFactory"/>
 
 </analyzer>
 
 </fieldType>


这个配置例子定义了两个分析器,每个都指定了将文本转换为词序列的处理步骤。Type属性可以指定为index或是query值,分别表示是索引时用的分析器,和查询时所用的分析器。如果在索引和查询时使用相同的分析器,你可以不指定type属性值。上面示例中的两个分析器之间的区别很小。

         分析器的配置中可以选用一个或多个字符过滤器(character filter),字符过滤器是对原始文本进行字符流级别的操作。它通常可以用于大小写转化,去除字母上标等等。在字符过滤器之后是分词器(Tokenizer),它是必须要配置的。分析器会使用分词器将字符流切分成词元(Token)系列,通常用在空格处切分这种简单的算法。后面的步骤是可选的,比如词元过滤器(Token Filter)(一般简称过滤器),会对词元(Token)进行许多种操作。最后产生的词元会被称为词(Term),即用于Lucene实际索引和查询的单位。注意有些词元过滤器如WordDelimeterFilterFactory也进行分词操作,但是它们是在词元上操作,而真正的分词器是操作一个字符流。

         最后,我有必须对autoGeneratePhraseQueries布尔属性补充两句,这个属性只能用于文本域。如果在查询文本分析时产生了多个词元,比如Wi-Fi分词为Wi和Fi,那么默认情况下它们只是两个不同的搜索词,它们没有位置上的关系。但如果autoGeneratePhraseQueries被设置,那么这两个词元就构造了一个词组查询,即“WiFi”,所以索引中“WiFi”必须相邻才能被查询到。在新Solr版本中,默认它被设置为false。我不建议使用它。

参考:http://www.cnblogs.com/lvfeilong/p/34545dghfdgf.html
分享到:
评论

相关推荐

    ikanalyzer-solr8.4.0_solr8_solr_ikanalyzer_中文分词_

    ikanalyzer 是一个专门为Java开发的中文分词器,它基于 Lucene 库,适用于各种文本处理和搜索引擎场景。在 Solr 环境中,ikanalyzer 的作用是为中文文档提供精确的分词服务,从而提升搜索质量和效率。Solr8.4.0 是 ...

    solr中文分词jar包ik-analyzer 含class配置 ik-analyzer-7.5.0

    标签中的"ik-ana"是Ik Analyzer的简称,"solr 中文分词"强调了这个分词器在Solr中的应用场景。文件列表中的"ik-analyzer-7.5.0.jar"即是我们需要集成到Solr中的核心组件。 总之,Ik Analyzer 7.5.0是Solr处理中文...

    solr_solr_

    在这个"增加了分词器后的配置文件"中,我们可以预期看到一些关于分词器(Tokenizers)和过滤器(Filters)的配置,这些是Solr处理文本的关键组件。 分词器是将输入的文本分解成一系列独立的词语或标记的组件。例如...

    solr 中文分词其IKAnalyzer 支持solr版本5.X-7.X

    描述中提到的"solr中文分词器 IKAnalyzer 支持solr版本5.x到7.x 亲测可用,我用的是7.2版本"进一步证实了IKAnalyzer在Solr 7.2版本中的实际应用,这为其他用户提供了信心,确保了在不同Solr版本下的稳定运行。...

    k-analyzer-solr solr分词器

    在Solr中,分词器(Analyzer)和过滤器(Filter)共同作用于输入文本,完成诸如分词、去除停用词、词形还原等任务,以便提高搜索质量和效率。 **Solr分词器配置** 配置Solr分词器主要涉及以下几个步骤: 1. **...

    solr中文分词器

    在Solr中,分词器(Tokenizer)是分析器(Analyzer)的一部分,负责将输入的文本拆分成可被索引的基本单元——词(Token)。中文分词器的引入解决了英文分词相对简单,而中文以字为基本单位,需要特殊处理才能正确...

    solr6.x的IKAnalyzer配置智能分词

    IKAnalyzer是一款针对中文的开源分词器,它在处理中文词汇时表现优秀,尤其适用于搜索引擎和信息检索系统。在Solr中配置IKAnalyzer可以提升中文搜索的准确性和效率。以下是对"solr6.6的IKAnalyzer配置智能分词"的...

    Solr6.0集成IK-Analyzer分词器

    IK Analyzer是一款优秀的开源中文分词器,尤其在处理现代汉语的分词效果上表现突出。在Solr中集成IK Analyzer,能够更好地对中文内容进行索引和搜索,提高查询效率和准确性。 **Solr6.0集成IK Analyzer的过程主要...

    solr ik分词器

    Solr是中国最流行的开源搜索引擎平台之一,而IK Analyzer是一款针对中文的高性能分词器,尤其在处理现代汉语的复杂情况时表现出色。本教程将详细解释如何在Solr中安装和使用IK分词器。 首先,让我们理解一下什么是...

    分词器 ikanalyzer-solr6.5

    ikanalyzer-solr6.5 是一个专门为Solr 6.5版本设计的中文分词器,它基于ikanalyzer,并且进行了优化以更好地适应Solr的索引和搜索需求。ikanalyzer是一个开源的、基于Java实现的中文分词库,主要用于解决中文文本...

    solr6.0以上版本可以配置的IKAnalyzer分词器

    在Solr6.0及以上版本中,为了更好地支持中文分词,我们可以配置IKAnalyzer(智能中文分析器)。IKAnalyzer是一个专门针对中文的开源分词器,设计目标是提供一个灵活且易扩展的中文分词组件。 **IKAnalyzer简介** IK...

    支持solr5.5 solr6.0中IK分词需要的资料

    在Solr中,分词器(Tokenizer)是文本分析的重要组成部分,它负责将输入的原始文本拆分成可搜索的独立单元——词语。IK分词器(Intelligent Chinese Analyzer for Solr,简称IK)是一款针对中文的高效分词工具,专为...

    solr 5.x 和 6.x 最新中文分词器

    2. Smart Chinese Analyzer:是专门为Solr设计的中文分词器,对停用词和词语切分有较好的处理,适合新闻、文章等文本的处理。 3. Paoding Analyzer:基于词典的分词器,拥有较高的分词准确率,支持用户自定义词典,...

    solr 分词器 mmseg4j IKAnalyzer

    在 Solr 中,分词器(Tokenizer)和分析器(Analyzer)是构建高效搜索索引的关键组件。分词器将输入的文本拆分成一系列的词语,而分析器则包括了分词器和其他过滤器,如去停用词、词形还原等,以优化搜索效果。 ...

    solr分词器IKAnalyzer

    Solr是一款强大的全文搜索引擎服务器,而IKAnalyzer是针对中文的开源分词器,广泛应用于Solr和Elasticsearch等搜索引擎中。IKAnalyzer的设计目标是提供一个灵活且易扩展的中文分词解决方案,以满足不同场景下的分词...

    IK分词solr5.0.0

    当我们谈论"IK分词solr5.0.0"时,我们关注的是如何在Solr 5.0.0版本中集成和使用IK分词器。 首先,IK分词器全称为“Intelligent Chinese Analyzer for Solr”,由北京大学的开源社区开发,旨在提供对中文文本更精确...

    solr分词器使用手册

    - **分词器**:在全文检索系统中,分词器扮演着非常重要的角色,它负责将输入的文本字符串切分成一个个有意义的词汇单元(即“词”),这一过程对于提高搜索的准确性和效率至关重要。 - **目的**:通过分词处理,...

    solr中文分词高版本

    同时,需要在Solr的schema.xml文件中指定ikanalyzer作为字段类型的分析器。 3. **创建字段**:在schema.xml中,创建一个使用ikanalyzer的字段类型,例如: ```xml &lt;fieldType name="text_ikanalyzer" class="solr...

    ikanalyzer分词器

    ikanalyzer分词器是一款在Java环境下广泛使用的中文分词工具,尤其在搜索引擎和文本分析领域中扮演着重要角色。它的核心是ikanalyzer.jar类库,这个库包含了分词算法和其他必要的支持类,使得开发者能够轻松地集成到...

Global site tag (gtag.js) - Google Analytics