美文网首页
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实战 第五章 分析数据

    1、什么是分析 分析是在文档被发送并加入到倒排索引之前,ES在其主体上进行的操作。 这四个部分组成分析器 字符过滤...

  • Elasticsearch实战 分析数据

    当传送数据到Elasticsearch的时候,究竟发生了什么? 一、什么是分析 分析是在文档被发送并加入倒排索引之...

  • ES原理之节点的启动和关闭

    Elasticsearch源码分析 | 单节点的启动和关闭 张超.Elasticsearch源码解析与优化实战

  • python实战总结 - 草稿

    1数据分析项目实战-用户消费行为分析数据分析实战,混泥土机器故障预测2数据分析项目实战-数据分析师的招聘薪资3电脑...

  • python实战总结

    1数据分析项目实战-用户消费行为分析数据分析实战,混泥土机器故障预测2数据分析项目实战-数据分析师的招聘薪资3电脑...

  • 【python】AQI处理分析

    1.Python:数据分析实战之AQI分析(完整版) Python:数据分析实战之AQI分析(完整版)

  • Es原理分析

    Es数据存储模型 Es读写模型 感谢:《Elasticsearch源码解析与优化实战》-张超

  • ELK数据分析工具学习

    ELK数据分析工具学习 ElasticSearch参考手册,学习http://elasticsearch.cn/b...

  • Elasticsearch简介

    1 什么是Elasticsearch? Elasticsearch是一个分布式、RESTful风格的搜索和数据分析...

  • Elasticsearch 存储结构 --- 2022-04-0

    本章从使用角度介绍Elasticsearch的数据模型,而不是分析Elasticsearch底层的存储结构,教程的...

网友评论

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

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