美文网首页
ElasticSearch Analyzer

ElasticSearch Analyzer

作者: AngryApe | 来源:发表于2019-02-28 01:03 被阅读0次

    Analysis【分析,动词】表示将文本处理转换为一系列短语的过程,这个过程有两处会用到:

    • 建立倒排索引:数据写入时,Analyzer【分词器,名词】会将数据解析成多个短语【英文文档中叫做tokens or terms】,用这些短语建立倒排索引;

    • 查询:查询时,分词器将查询条件解析成多个短语从倒排索引中查询数据;

    ES 预置了很多分词器,很遗憾,没有中文分词器,由于笔者也是刚开始探索,暂不深入研究。

    1. 可以设置全局默认分词器
    1. 也可以在定义Document【可以理解为数据类型,对应RDB中的表】时指定,以上两处的分词器可以相同【参数analyzer】,也可以分别指定【参数search_analyzer
    1. 查询分析器可以在查询语句中指定

    以上分析器在使用时,优先级依次提高;

    Analysis 由多个过程组成,ES 用Character filter,Tokenizer,Token filter 封装了这些过程,这三个概念在 ES 中是比 Analyzer 更低一层的概念。

    Character filter [pre process]

    字符过滤器接收原始的输入并做一些字符添加、替换、删除操作,比如 HTML 中的转义字符需要替换为实际字符;一个分词器中可以有零至多个字符过滤器,多个过滤器按顺序执行;

    Tokenizer [process]

    短语分割器将字符过滤处理完的数据流,并将其分割为独立的短语,输出 token 流数据。比如空格分割器,将文本"Quick brown fox!" 分割为 [quick, brown, fox!]

    Token filter [post process]

    短语过滤器对上一步的短语流做一些添加、替换、删除操作,比如一些虚词 a, the, and 等,对分析没有太大的影响,可以将其去掉。

    相关文章

      网友评论

          本文标题:ElasticSearch Analyzer

          本文链接:https://www.haomeiwen.com/subject/lfdcuqtx.html