美文网首页
Elasticsearch实战 第五章 分析数据

Elasticsearch实战 第五章 分析数据

作者: kaiker | 来源:发表于2021-11-28 13:52 被阅读0次

    1、什么是分析

    分析是在文档被发送并加入到倒排索引之前,ES在其主体上进行的操作。

    这四个部分组成分析器

    • 字符过滤
    • 文本切分
    • 分词过滤,将分词作为输入根据需要进行修改,添加或删除。这一步可以处理停用词、同义词
    • 分词索引
    分析流程

    2、为文档使用分析器

    在索引创建时增加分析器

    图片.png

    在配置中添加分析器

    在映射中指定某个字段的分析器

    {
      "mappings": {
        "document":{
          "properties":{
            "description":{
              "type":"string",
              "analyzer":"myCustomAnalyzer"
            }
          }
        }
      }
    }
    

    3、使用分析API来分析文本

    _analyze端点,允许你向ES发送任何文本,指定所使用的分析器、分词器或分词过滤器,然后获取分析后的分词。

    分析API

    4、分析器、分词器和分词过滤器

    内置分析器

    一个分析器包括一个可选的字符过滤器、一个单个分词器、0个或多个分词过滤器1

    分析器概览
    • 标准分析器
    • 简单分析器
    • 空白分析器
    • 停用词分析器
    • 关键词分析器,将整个字段当做一个单独的分词。
    • 模式分析器,可指定分词切分模式
    • 雪球分析器

    分词器

    • 标准分词,基于语法的分词器
    • 关键词分词,将整个文本作为单个分词
    • 字母分词,根据非字母的符号进行切分
    • 小写分词,分词同时会转换小写
    • 空白分词器
    • 模式分词器
    curl -XPOST 'localhost:9200/pattern' -d '
    {
      "settings": {
        "index":{
          "analysis":{
            "tokenizer":{
              "pattern1":{
                "type":"pattern",
                "pattern":"\\.-\\."
              }
            }
          }
        }
      }
    }
    

    分词过滤器

    分词过滤器
    • 标准分词过滤器,其实什么都没过滤
    • 小写分词过滤器,转换成小写
    • 长度分词过滤器
    • 停用词分词过滤器
    curl -XPOST 'localhost:9200/stopwords' -d '
    {
      "settings": {
        "index":{
          "analysis":{
            "analyzer":{
              "stop1":{
                "type":"custom",
                "tokenizer":"standard",
                "filter":["my-stop-filter"]
              }
            },
            "filter":{
              "my-stop-filter":{
                "type":"stop",
                "stopwords":["the", "a", "an"]
              }
            }
          }
        }
      }
    }
    
    • 截断分词过滤器、修建分词过滤器
    • 颠倒分词过滤器
    • 唯一分词过滤器
    • 同义词分词过滤器
    curl -XPOST 'localhost:9200/syn-test' -d '
    {
      "settings": {
        "index":{
          "analysis":{
            "analyzer":{
              "synoyms":{
                "type":"custom",
                "tokenizer":"standard",
                "filter":["my-synonym-filter"]
              }
            },
            "filter":{
              "my-synonym-filter":{
                "type":"synonym",
                "expand": true,
                "synonyms":["automobile" => "car"]
              }
            }
          }
        }
      }
    }
    

    5、N元语法、侧边N元语法和滑动窗口

    N元语法过滤器

    • spaghe 一元 被分成 s p a g h e
    • 二元被分成 sp pa ag gh he
    • 三元被分成 spa pag agh ghe
    • 当事先不知道何种语言,或者单词结合方式和欧洲语言不通,仍然允许用户对文本进行分析

    侧边N元语法过滤器

    • 仅仅从前端的边缘开始构建N元语法
    • 设置min_gram为2 max_gram为6 就可以分为 sp spa spag spagh spaghe
    curl -XPOST 'localhost:9200/ng' -d '
    {
      "settings": {
        "index":{
          "analysis":{
            "analyzer":{
              "ng1":{
                "type":"custom",
                "tokenizer":"standard",
                "filter":["ngf1"]
              }
            },
            "filter":{
              "ngf1":{
                "type":"edgeNgram",
                "min-gram": 2,
                "min-gram":6
              }
            }
          }
        }
      }
    }
    

    滑动窗口分词过滤器

    字符级别的滑动

    foo, bar, baz 就可以分成 foo, foo bar, foo bar baz

    6、提取词干

    算法提取词干

    • 过滤器,snowball过滤器、porter stem过滤器、kstem过滤器


      过滤器

    相关文章

      网友评论

          本文标题:Elasticsearch实战 第五章 分析数据

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