`
sharp-fcc
  • 浏览: 110808 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

理解solr中的 Analyzer,Tokenizer,Filter

阅读更多

翻译自 Apache Solr Reference Guide

 

Analyzer:

analyzer负责检查这个field,然后生成一个token流,一般作为fieldType的一个字节点存在,比如:

<analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNu
mbers="0" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>

 

 任何复杂的field的分析都可以被分成独立的,一系列的处理步骤,你会发现solr中包含了大部分你需要用到的analyzer。在这个例子中,虽然没有制定特定的analyzer的类,但是他们的按照配置的流程依次走过,从 WhitespaceTokenizerFactory 开始,最后PorterStemFilterFactory 结束。通过配置analyzer的type可以指定是在 index阶段还是 query阶段使用。

 

Tokenizer:

tokenizer是把一个文本流切成一个个token的,就是传说中的分词,把一句话分成一段一段的,一些空格,停顿符啥的可能被扔了,一个token包含一些这个词的元信息在里面,比如说这个词的位置,当然分词的结果很可能是偏离原来意思的。如果就为了分词的话,一个analyzer中只有一个tokenizer,否则,这个输出会作为以下输入来使用,

 

Filter:

filter比tokenizer简单,是专门处理一个个token的, 把他们做变换或者是丢弃什么的。filter是接受一个token流,输出一个token流,所以可以是一个链条,处理的顺序跟schema里面的顺序是一样的,所以我们一般把通用的filter放到前面,其他放后面。

 

 调试自己的anaylizer使用http://localhost:8983/solr/#/collection1/analysis  就可以了 ,十分方便。

 

分享到:
评论

相关推荐

    IKAnalyzer-5.0.jar及solr-analyzer-extra-5.3.jar

    这是Apache Solr的一个扩展库,包含了各种分析器(Analyzer)、过滤器(Filter)和令牌化器(Tokenizer)。在Solr中,Analyzer是处理文本输入的关键组件,它负责将原始文本转换为可供索引和查询的Token序列。这个...

    k-analyzer-solr solr分词器

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

    ik-analyzer-solr7.zip

    1.ik中文分词器适配最新版本solr7和solr8,下载后解压,将target下的ik-analyzer-7.7.1.jar包放入Solr服务的`Jetty`或`Tomcat`的`webapp/WEB-INF/lib/`目录下。 2.将`resources`目录下的5个配置文件放入solr服务的`...

    solr中文分词器

    在Linux环境下,将IK Analyzer集成到Solr中通常涉及以下步骤: 1. **下载与安装**:首先,从官方仓库或者源代码仓库下载IK Analyzer的最新版本,如IK Analyzer 2012FF_hf1,并将其解压到合适的目录。 2. **配置...

    solr6对应的IKAnalyzer分词器

    &lt;tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="false"/&gt; &lt;filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms=...

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

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

    最新Solr环境搭建与IKAnalyzer3分词整合.doc

    &lt;tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/&gt; &lt;filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/&gt; &lt;filter class="solr....

    IKAnalyzer5.2.1src增加连续数字、字母、英语智能分词支持solr5.x以上、lucence5.x以上版本

    &lt;tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" isIndistinct="true"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;filter class="solr.TrimFilterFactory"/&gt; ...

    solr ik分词器

    Solr是中国最流行的开源搜索引擎平台之一,...总之,将IK Analyzer集成到Solr中可以显著提升中文文本处理的效果,使得搜索更加准确和高效。通过不断优化配置,你可以进一步提升用户体验,满足各种复杂的中文检索需求。

    IKAnalyzer5.2.1增加连续数字、字母、英语智能分词支持solr5.x以上、lucence5.x以上版本

    &lt;tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" isIndistinct="true"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;filter class="solr.TrimFilterFactory"/&gt; ...

    solr4.7服务搭建

    &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;/analyzer&gt; &lt;fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100"&gt; &lt;analyzer&gt; &lt;tokenizer class=...

    ik-analyzer-8.3.1分词插件.rar

    cp ik-analyzer-8.3.1.jar ../solr/WEB-INF/lib 另:为了方便自定义ik-analyzer的设置,可以把ik-analyzer-8.3.0.jar中的配置文件 也复制过来 cp -r ik-analyzer-8.3.1/* ../solr/WEB-INF/classes 2、修改/usr/...

    solr4.3源代码一

    在"lucene"目录下的源代码中,你可以看到这些过程的具体实现,如Analyzer、Tokenizer和Filter类。 **查询处理** 查询处理包括查询解析、查询优化和评分。Solr的QueryParser将用户输入的查询语句转化为Solr可以理解...

    ik-analyzer-8.3.0分词插件.zip

    3. 在Solr的schema.xml配置文件中定义分词器,例如设置Analyzer、Tokenizer和Filter等组件。 4. 配置字段类型,指定使用ik分词器。例如,创建一个用于存储中文内容的字段,并指定其类型为使用ik分词的text_ik类型。 ...

    solr6配置mmseg4j

    在Solr6中配置mmseg4j是为了实现中文分词,从而提升搜索效果。mmseg4j是基于Java的一个高性能中文分词库,它提供了多种分词算法,如最长匹配、最短路径等,以满足不同的分词需求。 首先,我们需要理解Solr6的基本...

    solr_solr_

    总的来说,Solr的`manageschema`配置文件是理解和优化搜索行为的关键,它定义了数据的结构和处理方式,直接影响到搜索效率和准确性。通过适当地配置分词器和过滤器,可以更好地满足不同语言和应用场景的需求。

    Solr扩展依赖Jar包

    首先,让我们深入理解一下分词器在Solr中的作用。分词器(Tokenizer)是信息检索领域中的核心组件,它的主要任务是对输入的文本进行切分,将其转化为一系列可被索引和搜索的词语。在Solr中,分词器的选择和配置直接...

    solr_pinyin

    Solr是中国搜索引擎技术开源项目Apache Lucene的一部分,它是一个高性能、可扩展的...通过理解如何在Solr中配置和使用拼音检索,你可以创建一个更加用户友好的搜索系统。记住,持续优化和测试是确保良好性能的关键。

Global site tag (gtag.js) - Google Analytics