首页 > 其他分享 >Elasticsearch 所有内置分析器介绍(5)

Elasticsearch 所有内置分析器介绍(5)

时间:2024-04-19 16:44:26浏览次数:30  
标签:lazy 内置 jumped over 分析器 dog Elasticsearch bone

 Elasticsearch 附带了各种内置分析器,可以直接在任何索引中使用,而无需额外配置:

  1) 标准分析器  Standard Analyzer

    该分析器的文本分词规则是:过滤掉大多数标点符号来划分单词,通过Unicode 文本分割算法,再转成小写的分词。

    支持删除常用的停用词(如:the, a 等),需要配置fileter英文停用词。

    该分析器是ES的默认分析器。

POST _analyze
{
  "analyzer":"standard",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

    分析结果:[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]

  2) 简单分析器 Simple Analyzer

    该分析器的文本分词规则是:过滤掉不是字母的划分单词,再转成小写的分词。

POST _analyze
{
  "analyzer":"simple",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

    分析结果:[ the, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]

  3) 空白分析器 Whitespace Analyzer

     该分析器的文本分词规则是:以空格来划分单词, 不转换为小写的分词

POST _analyze
{
  "analyzer":"whitespace",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

    分析结果:[ The, 2,QUICK, Brown-Foxes, jumped, over, the, lazy, dog's, bone ]

  4)停止分析器 Stop Analyzer

    该分析器去Simple Analyzer相似,但增加了对删除停用词的支持,转成小写的分词。

POST _analyze
{
  "analyzer":"stop",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

   分析结果:[ quick, brown, foxes, jumped,over, lazy, dog, s, bone ]

  5)关键词分析器 Keyword Analyzer

    该分析器是一个“noop”分析器,也就是一个空的分析器,并不会对文本进行分词,而是将整个文本看成一个term。

POST _analyze
{
  "analyzer":"keyword",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

    分析结果:

{
  "tokens" : [
    {
      "token" : "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
      "start_offset" : 0,
      "end_offset" : 56,
      "type" : "word",
      "position" : 0
    }
  ]
}

  6)模式分析器 Pattern Analyzer

    该分析器使用正则表达式将文本分词。 分词后转小写,支持停用词。默认为  \w+   的正则表达式(\w代表一个字符或数字, \w+  就代表一个或多个字符或数字)

    注意:模式分析器使用 Java 正则表达式。写得不好的正则表达式可能会运行得很慢,甚至抛出 StackOverflowError或正在运行的节点退出。

POST _analyze
{
  "analyzer":"pattern",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

    分析结果:[ the, 2,quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]

  7) 语言分析器 Language Analyzer

    Elasticsearch 提供了许多语言的分析器, 如english or french

POST _analyze
{
  "analyzer":"english",
  "text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

    分析结果:[ 2,quick, brown, foxes, jumped, over, lazy, dog, bone ]

  8)指纹分析器 Fingerprint  Analyzer

    将输入的文本 小写、标准化以删除扩展字符、排序、去重 并连接成单个标记, 一般用涂:

      1) 唯一标识: 用于给数据生成一个唯一标识,以便跟踪和管理。

      2) 数据对比: 通过比较不同数据的指纹,可以快速判断它们是否相同。

      3) 安全性和合规: 在安全性和合规性要求高的场景下,用于确保数据的一致性和完整性。

POST _analyze
{
  "analyzer": "fingerprint",
  "text": "Yes yes, Gödel said this sentence is consistent and."
}

    分析结果:

{
  "tokens" : [
    {
      "token" : "and consistent godel is said sentence this yes",
      "start_offset" : 0,
      "end_offset" : 52,
      "type" : "fingerprint",
      "position" : 0
    }
  ]
}

 

参考官方资料: Built-in analyzer reference    

标签:lazy,内置,jumped,over,分析器,dog,Elasticsearch,bone
From: https://www.cnblogs.com/MrHSR/p/18110580

相关文章

  • SpringCloud(七.5)ES(elasticsearch)-- 查询结果处理
    搜索结果处理排序分页高亮显示 1、排序ES支持对搜索结果排序,默认是根据相关度算分(BM25算法的_score)来排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。注意:指定了排序字段后ES就会放弃打分,按指定的排序字段走。语法如下:按某个字段排序 /......
  • Java开发者如何使用RunFlow内置的QLExpress
    本文是为Java开发者写的手册,如果您不是Java开发者可以阅读我们的开发者篇手册,当然如果您感兴趣也可以继续阅读。输入qe进入QLExpress专注模式。执行Java代码比如数学计算:Math.sin(9);执行结果:0.4121184852417566。比如读取系统环境变量:top.myrest.myflow.util.Jackson......
  • elasticsearch相关2
    1.数据聚合1.1.聚合的种类聚合常见的有三类:-**桶(Bucket)**聚合:用来对文档做分组-TermAggregation:按照文档字段值分组,例如按照品牌值分组、按照国家分组-DateHistogram:按照日期阶梯分组,例如一周为一组,或者一月为一组-**度量(Metric)**聚合:用以计算一些值,比如:最大值、最小......
  • ElasticSearch
    分布式搜索技术倒排索引ElasticSearch采用倒排索引1、文档(document):每条数据就是一个文档2、词条(term):文档按照语义分成的词语。不可重复MySQL擅长事务类型操作,可以确保数据的安全和一致性。ElasticSearch擅长海量数据的搜索、分析、计算。单机安装dockernetwor......
  • SpringCloud(七.4)ES(elasticsearch)-- DSL查询语法
    DSL查询语法 1、查询所有以下是简写和全写 总结:  2、全文检索查询(match)全文检索查询,会对用户输入内容分词,常用于搜索框搜索: 回顾在 SpringCloud(七.3)ES(elasticsearch)--RestClient操作 中创建索引时添加的all字段,以及字段拷贝copy_to。这里all字段就派上了用......
  • 面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?
    前言最近有粉丝找到我,说被面试官给问懵了。粉丝:面试官上来就问“一个vue文件是如何渲染成浏览器上面的真实DOM?”,当时还挺窃喜这题真简单。就简单说了一下先是编译成render函数、然后根据render函数生成虚拟DOM,最后就是根据虚拟DOM生成真实DOM。按照正常套路面试官接着会问vue......
  • 夜莺监控 V7 第二个 beta 版本发布,内置集成故障自愈能力,简化部署
    经过一个半月的打磨改进,夜莺监控V7第二个beta版本发布了,本次发布的主要亮点是内置集成故障自愈能力,简化架构,同时做了其他19项改进。一些重要的改进如下:feat:集成故障自愈的能力,不需要再单独部署ibex模块了refactor:内置仪表盘和内置规则页面重构refactor:业务组树......
  • Python中容易被忽略的内置类型
    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们。然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些“不同寻常”的内置类型。1.frozenset不可变集合(frozenset)与普通的set一样,只不过它的元素是不可变的,因此......
  • 一个.NET内置依赖注入的小型强化版
    前言.NET生态中有许多依赖注入容器。在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀。外加ASP.NETCore默认使用内置容器,使用很方便。但是笔者在使用中一直有一个头疼的问题:服务工厂无法提供请求的服务类型相关的信息。这在一般情况下并没有影响,但是内置容器支......
  • SpringCloud(七.3)ES(elasticsearch)-- RestClient操作
    RestClient是ES官方提供的各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html官方文档使用教程    使用RestClient操作索引库使用案例:  hote......