Elasticsearch---分析器(analysis)

本文介绍了Elasticsearch的分析过程,包括倒排序原理、分析器的三个组成部分:字符过滤器、分词器和Token过滤器,以及各种内置和自定义分析器的详细说明。分析器在写入和查询时的作用,以及如何设置和自定义分析器。
摘要由CSDN通过智能技术生成

Elasticsearch---分析(analysis)

    ES 的倒排索引即是根据分词后的单词创建,意味着在搜索的时候,匹配分词后的单词才能命中该文档。

一、倒排序简介:

二、用到analysis的地方:

1. 写时分词:发生在写入、更新文档时,由analysis经过分析由Tokens列表,将结果存入倒排索引。

2.读时分词: 发生在用户查询时,输入的关键词进行分词,分词结果只存在内存中。

 

二、ES分词流程:

Character filter-->>Tokenizer-->>Token filters

分析器(Analyzer)由三部分构成:

  • 0个或多个字符过滤器( Character filters)按顺序应用。
  • 有且只有一个分词器(Tokenizer)
  • 0个或多个过滤器(Token filters),按顺序应用。

1. 字符过滤器( Character filters)

字符过滤器以字符流的形式接收原始文本,并可以通过添加、删除或更改字符来转换该流。

Elasticearch只提供了三种字符过滤器:

  • HTML字符过滤器(HTML Strip Char Filter):文本中去除HTML元素。
  • 映射字符过滤器(Mapping Char Filter):映射仠替换。("mappings":["苍井空 => 666","武藤兰 => 888"])
  • 模式替换过滤器(Pattern Replace Char Filter):正则表达式匹配并替换,小心导致性能变慢
过滤器 简称 描述 支持参数
HTML Strip Char Filter html_strip 去除HTML元素 escaped_tags(排除的标签数组)
Mapping Char Filter mapping 根据配置的映射配置 mappings_path(一个key => value特定格式的文件路径,相对或config文件夹)
Pattern Replace Char Filter pattern_replace 使用java正则替换 pattern,replacement,flags

    参考详情见:

1. https://www.cnblogs.com/Neeo/articles/10613612.html

2. https://yuanwenjian.github.io/2018/03/09/Elasticsearch%E5%86%85%E7%BD%AE%E5%88%86%E8%AF%8D%E5%99%A8%E5%8F%8A%E5%AD%97%E7%AC%A6%E8%BF%87%E6%BB%A4%E5%99%A8/

 

2.分词器(Tokenizer):

一个分词器接收一个字符流,并将其拆分成单个token (通常是单个单词),并输出一个token流。

"text": "Is this déja vu?"---->Tokenizer----> tokens[...,...]  
token结构:
{
   "token":"The",   //term分词,用于倒排序。
   "start_offset":0, // 所有的字符串位置信息,高亮时用到。
   "end_offset":3,
   "type":"word",
   "position":0
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值