• solr介绍一:Analyzer(分析器)、Tokenizer(分词器)


    首先,不知道大家在前面的例子中没有试着搜索文本串,就是在第二节,我们添加了很多文档。如果字段值是一个文本。你如果只搜索这个字段的某个单词,是不是发现搜不到?

    这就是因为我们没有配置Analyzer,因此在搜索的时候会“全匹配”。可以从直观感觉上理解为SQL的  like和= 的区别。

    通过前面这段引文,我们就能知道:Analyzer就是分析我们的文本的。

    一般来说:solr.TextField类型的字段才需要分析器。

    最简单的配置分析器的如下:

    [html] view plaincopy
     
    1. <fieldType name="nametext" class="solr.TextField">  
    2. <analyzer class="org.apache.lucene.analysis.WhitespaceAnalyzer"/>  
    3. </fieldType>  


    其实分析器(Analyzer)还可以包括一个分词器(Tokenizer)和多个过滤器(filter),这2个东西,是为了实现更复杂的场景,我们后续再讲。

    分析器一般出现在2个环境:建索引(index)和查询(query),大多数情况下这2个场景的分析过程都是一样,也就是说用的是相同的分析器。但是,你仍然可以为2个不同的阶段指字不同的分析器:

    [html] view plaincopy
     
    1. <fieldType name="nametext" class="solr.TextField">  
    2. <analyzer type="index">  
    3. <tokenizer class="solr.StandardTokenizerFactory"/>  
    4. <filter class="solr.LowerCaseFilterFactory"/>  
    5. <filter class="solr.KeepWordFilterFactory" words="keepwords.txt"/>  
    6. <filter class="solr.SynonymFilterFactory" synonyms="syns.txt"/>  
    7. </analyzer>  
    8. <analyzer type="query">  
    9. <tokenizer class="solr.StandardTokenizerFactory"/>  
    10. <filter class="solr.LowerCaseFilterFactory"/>  
    11. </analyzer>  
    12. </fieldType>  


    同过 type来指阶段。

    Tokenizer:

      分词器,从字面意思都可以理解,就是将句子拆成一个个的词(或者是词组),比如A B C D,可以拆成A,B,C,D4个单独的单词,也有可能拆成AB,CD  或者其它。。。。 这个就看你分词规则了。

      使用如下:

    [html] view plaincopy
     
    1. <fieldType name="text" class="solr.TextField">  
    2. <analyzer>  
    3. <tokenizer class="solr.StandardTokenizerFactory"/>  
    4. </analyzer>  
    5. </fieldType>  


    值 得注意的是:这里配的class是Factory,而不是真正的分词器,他是通过工厂类来创建分词器实例的。所有的工厂类,必须实现org.apache.solr.analysis.TokenizerFactory

    工厂的产出物,也必须派生至:org.apache.lucene.analysis.TokenStream

    Filter:

       就是经过Tokenizer分词之后,再再行的继续处理,比如全转成小写,时态处理, 去掉语气词等。。。

  • 相关阅读:
    【读书笔记】iOS-验证应用内支付的凭证注意事项
    【读书笔记】iOS-防止通讯协议被轻易破解的方法
    【读书笔记】iOS-安全地传输用户密码的方法
    【读书笔记】iOS-使用应用内支付注意事项
    【读书笔记】iOS-UIFont-动态下载系统提供的字体-官方代码
    【读书笔记】iOS-UIFont-动态下载系统提供的多种中文字体网址
    【读书笔记】iOS-UIFont-如何知道字体的PostScript名称
    【读书笔记】iOS-UIWindow-密码框
    【读书笔记】iOS-UIWindow-WindowLevel
    【读书笔记】iOS-GCD-使用方法
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/2343243sdfdsfd.html
Copyright © 2020-2023  润新知