美文网首页
ES分析器解析

ES分析器解析

作者: Ksewen | 来源:发表于2017-12-27 12:23 被阅读0次

    es的分析器往往包括3个低级构建块包:

    • character filters - 字符过滤器,可以添加、删除或更改字符来转换流,一个分析器可有多个字符过滤器;
    • tokenizer - 标记器,接受字符流,将其分解成单独的标记,并输出标记流,一个分析器只能有一个标记器;
    • token filters - token过滤器,接受token流,并可以添加、删除或修改token,不允许更改每个token的位置或字符偏移量,一个分析器可有多个token过滤器,并按顺序应用。

    测试分析器

    指定索引引用分析器

    PUT my_index 
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "ik": {                //自定义一个名为std_folded的分析器
              "type": "custom",                //type自定义
              "tokenizer": "ik_smart",                //指定标记器                      
              "filter": [                //指定字符过滤器
                "lowercase",
                "asciifolding"
              ]
            }
          }
        }
      },
      "mappings": {                //设置映射
        "my_type": {
          "properties": {
            "my_text": {                //指定字段
              "type": "text",                //设置type,String类型已被废弃,用text或keyword
              "analyzer": "ik"                //指定分析器为上文定义的自定义分析器
            }
          }
        }
      }
    }
    

    测试分析器效果

    GET my_index/_analyze 
    {
      "analyzer": "std_folded",                 //按分析器名指定分析器
      "text":     "这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主"                //指定要分析的文本
    }
    

    测试字段指定的分析器效果

    GET my_index/_analyze 
    {
      "field": "my_text",                  //参考字段my_text使用的分析器
      "text":  "这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主"
    }
    

    Elasticsearch提供的内置analyzers

    Standard Analyzer

    标准分析仪按照Unicode文本分段算法的定义,将文本分割成单词边界的分词。它删除了大多数标点符号,小写显示分词,并支持删除stop words。

    Simple Analyzer

    当遇到不是字母的字符时,简单的分析器会将文本分成条目。小写显示分词。

    Whitespace Analyzer

    空格分析器遇到任何空格字符时都会将文本分为多个项目。不会把分词转换为小写字母。

    Stop Analyzer

    停止分析仪和Simple Analyzer类似,但也支持stop words的删除。

    Keyword Analyzer

    一个“noop”分析器,它可以接受任何给定的文本,并输出完全相同的文本作为一个单词。

    Pattern Analyzer

    使用正则表达式拆分分词,支持lower-casing和stop words。

    Language Analyzers

    Elasticsearch提供许多语言特定的分析器,如英语或法语。

    Fingerprint Analyzer

    一个专门的分析仪,它可以创建一个可用于重复检测的指纹。

    相关文章

      网友评论

          本文标题:ES分析器解析

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