`

solr 中文分词filedType定义

    博客分类:
  • solr
 
阅读更多

一.   solr.TextField 允许用户通过  分析器 来定制  索引和查询  的 fieldType

分析器包括 一个分词器(tokenizer)和多个过滤器(filter)。

代码展示:

 

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false" /> 
        <filter class="solr.StopFilterFactory"
                ignoreCase="true"
                words="stopwords.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.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory"
                ignoreCase="true"
                words="stopwords.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.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
      </analyzer>
    </fieldType>
 

二.   Solr建立索引 和 对关键词进行查询 都得对字串进行分词。

在向索引库中添加全文检索类型的索引的时候,Solr会首先用空格进行分词,然后把分词结果依次使用指定的过滤器进行过滤,最后剩下的结果才会加入到索引库中以备查询。

分词的顺序如下:

 

索引

1:空格whitespaceTokenize

2:过滤词StopFilter

3:拆字WordDelimiterFilter

4:小写过滤LowerCaseFilter

5:英文相近词EnglishPorterFilter

6:去除重复词RemoveDuplicatesTokenFilter

查询

1:查询相近词

2:过滤词

3:拆字

4:小写过滤

5:英文相近词

6:去除重复词

以上是针对英文,中文的除了空格,其他都类似。但具体是什么样子,需要看对应的 fieldType中的配置。

 

如 1.  中的配置

索引:

1.    IK分词

2.    停用词过滤

3.    拆字

4.    小写过滤

5.    关于不同语言的词干处理

 

查询:

1.    IK分词

2.    同义词

3.    停用词

4.    拆字

5.    小写过滤

6.     关于不同语言的词干处理

 

 

三.   常用分词器与过滤器介绍

      分词器:

      1.   < tokenizer class =" solr.WhitespaceTokenizerFactory " />

            空格分词器

      2.   <tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false" />

            IK分词器

 

      过滤器

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

在分词和匹配时,考虑"-"连字符,字母数字的界限,非字母数字字符,这样 "wifi"或"wi fi"都能匹配"Wi-Fi"。

 

      2.   <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />

      同义词,同义词的构建一定要参考 http://ip:8983/solr/admin/analysis.jsp 页面的分词效果。

 

     3.    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />

      在禁用字(stopword)删除后,在短语间增加间隔

      stopword:即在建立索引过程中(建立索引和搜索)被忽略的词,比如is this等常用词。

      在conf/stopwords.txt维护。

 

     4.  其它 参见  http://damoqingquan.iteye.com/blog/231293

 

 

分享到:
评论

相关推荐

    solr中文分词器

    Solr中文分词器是针对Apache Solr全文检索引擎在处理中文文本时的不足而设计的一种解决方案。Solr默认的分词策略主要针对英文文本,它以空格为分隔符进行分词,而对于中文这种没有明显分隔符的语言,就需要特定的...

    solr中文分词高版本

    "solr中文分词高版本"的标题表明我们在这里讨论的是适用于Solr 6.5及以上版本的中文分词解决方案,因为默认的Solr分词器可能不支持这些较高版本,或者在使用过程中会出现问题。 描述中提到的“网上提供的solr中文...

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

    Ik Analyzer是一款针对Java平台设计的、专门用于中文分词的开源工具,它在Solr中扮演着至关重要的角色。 标题提到的"ik-analyzer 7.5.0"是Ik Analyzer的一个特定版本,这个版本包含了对Solr的支持,并且提供了类...

    solr 中文分词

    因此,为了准确地理解和检索中文内容,我们需要进行分词,将连续的汉字序列切割成具有独立意义的词汇。这有助于提高搜索结果的相关性和精度。 2. **Solr 的分词器** Solr 内置了多种分词器,包括 ...

    solr ik分词器

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

    ikanalyzer-solr中文分词包兼容solr7.5

    ikanalyzer-solr中文分词包是专门为Apache Solr设计的一款强大的中文分词工具,它在处理中文文本时能够有效地进行词语切分,提高搜索准确性和效率。标题中提到的"ikanalyzer-solr中文分词包兼容solr7.5"意味着这个...

    solr ik中文分词

    在处理中文文本时,由于中文的特殊性(词与词之间没有明显的分隔符),需要使用专门的分词器进行预处理,将连续的汉字流分割成有意义的词语,这个过程称为中文分词。IK Analyzer(简称IK)就是为了解决这个问题而...

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

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

    solr中文分词器文件及配置.zip

    solr搜索框架的中文分词器文件及配置详解供大家下载,亲测可用.解压出来的jar包放到apache-tomcat-9.0.20\webapps\solr\WEB-INF\lib下(Tomcat项目里solr项目)其他三个文件放到apache-tomcat-9.0.20\webapps\solr\...

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

    一、Solr中文分词器概述 在处理中文文档时,由于中文句子没有明显的分隔符,如英文的空格,因此需要使用分词器进行预处理。Solr支持多种中文分词器,如IK Analyzer、Smart Chinese Analyzer、Paoding Analyzer等,...

    solr中文分词器ik-analyzer-solr7.x

    **Solr中文分词器IK Analyzer** Solr作为一款强大的全文搜索引擎,对于中文处理有着特殊的需求,因为中文的语义分析比英文复杂得多。IK Analyzer是专门为了解决这个问题而设计的,它是一款开源的、高性能的、适用于...

    solr7.3.1中文分词器

    描述中提到的"solr7.3.1种需要的中文IK分词器",IK(Intelligent Chinese Analyzer)分词器是一个强大的、成熟的中文分词组件,广泛应用于各种Java开发的搜索系统中。IK分词器支持多种分词模式,包括精确模式、全...

    solr分词器

    在Solr中,有多种内置的分词器可供选择,如StandardTokenizer(标准分词器)和IK Analyzer(智能中文分词器)。以IK Analyzer为例,它是专门为中文设计的分词器,能够处理复杂的中文词汇切分问题。IK Analyzer支持...

    solr(中文分词器)集群

    IK分词器(Intelligent Chinese Analyzer for Solr)是针对Solr优化的中文分词工具,它支持多种分词模式,包括精确模式、全模式、关键词模式等,以满足不同场景的需求。在Solr的`schema.xml`配置文件中,你可以指定...

    solr中文分词器技术

    中文分词技术(中文分词原理)词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的...

    solr cloud6.1.0拼音分词

    拼音分词是处理中文文本的一种策略,它将汉字转换为其对应的拼音,从而允许用户通过输入拼音来搜索相关的中文内容。 在Solr中,拼音分词主要依赖于特定的分析器和过滤器。这些组件在索引和查询阶段处理文本,将汉字...

    lucene、solr中文分词器

    这些分词器专门针对中文的特点进行了优化,能够准确地将连续的汉字序列切分成具有实际意义的词语,这一过程称为中文分词。 ikanalyzer和IK Analyzer是基于字典的分词器,它们维护了大规模的中文词汇库,通过查找...

    solr IK分词需要的资料

    Solr是中国最流行的全文搜索引擎框架之一,而IK(Intelligent Word)分词器是Solr中广泛使用的中文分词插件。在Solr6.0版本中,IK分词器的使用对于提升搜索准确性和效率至关重要。下面我们将深入探讨如何在Solr6.0中...

Global site tag (gtag.js) - Google Analytics