zoukankan      html  css  js  c++  java
  • 1.5.4 什么是Filter--过滤器

    什么是Filter--过滤器

      像分词器(tokenizer)一样,过滤器(filter)消耗输入,产生token流.过滤器同样从org.apache.lucene.analysis.TokenStream中产生.和tokenizer不同的是,filter的输入是一个Tokenizer.filter的工作一般都比tokenizer简单,因为在大多数情况下,filters查看每一个stream中token的顺序,并决定是否传递,替换,或者废弃它.

      filter还可以提前做出更复杂的分析,一次考虑多个token.虽然这是不常见的.一个假设的对于这种filter的使用就是规范化名字的状态,需要分成2个单词. 例如,这单独的token "california" 可以使用"CA"来替换,然而token "rhode" 以及接着的"island" 可能会变成"RI".

      因为filters消耗了一个TokenStream,生成了一个TokenStream.

    <fieldType name="text" class="solr.TextField">
        <analyzer>
            <tokenizer class="solr.StandardTokenizerFactory" />
            <filter class="solr.StandardFilterFactory" />
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.EnglishPorterFilterFactory" />
        </analyzer>
    </fieldType>

      例子中,solr的标准分词器将字段的文本内容分解成tokens.这些tokens然后传递给solr的过滤器,这些顾虑起删除首字母的缩略词,执行一些普通的操作,所有的token都设置为小写,因为查询时不区分大小写的.

  • 相关阅读:
    Java核心技术点之动态代理
    一起写一个Android图片加载框架
    Java核心技术点之注解
    Android中的Intent Filter匹配规则介绍
    阿里客户端工程师试题简析——Android应用的闪退(crash)分析
    Android开发之高效加载Bitmap
    Java NIO:浅析I/O模型
    深入探索Android中的Handler
    git常用命令
    SM2
  • 原文地址:https://www.cnblogs.com/a198720/p/4302557.html
Copyright © 2011-2022 走看看