触类旁通Elasticsearch之吊打同行系列:分析篇

2024-09-06 20:18

本文主要是介绍触类旁通Elasticsearch之吊打同行系列:分析篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方蓝色字体,选择“设为星标

回复”资源“获取更多资源

大数据技术与架构

点击右侧关注,大数据开发领域最强公众号!

大数据真好玩

点击右侧关注,大数据真好玩!

目录

一、什么是分析

二、分析文

三、分析API

四、分析器、分词器、分词过滤器

  1. 内置分析器

  2. 分词器

  3. 分词过滤器

五、N元语法、侧边N元语法、滑动窗口

六、IK中文分词插件

一、什么是分析

分析(analysis)是在文档被发送并加入倒排索引之前,ES在其主体上进行的操作。在文档被加入索引之前,ES让每个被分析字段经过一系列的处理步骤。

  • 字符过滤:使用字符过滤器转变字符。

  • 文本切分为分词:将文本切分为单个或多个分词。

  • 分词过滤:使用分词过滤器转变每个分词。

  • 分词索引:将这些分词存储到索引中。

图1展示了将文本“share your experience with NoSql & big data technologies”进行分析的整个流程。

(1)字符过滤
字符过滤将特定的字符序列转变为其它的字符序列。图1中使用特定过滤器将&替换为“and”。

(2)切分为分词
Lucene处理的是被称为分词(token)的数据。分词是从文本片段生成的,可能会产生任意数量(甚至是0)的分词。例如,标准英文分词器根据空格、换行和破折号等字符,将文本分割为分词。图1中,这种行为表现为将字符串“share your experience with NoSql and big data technologies”分割为分词share、your、experience、with、NoSql、and、big、data和technologies。

(3)分词过滤
一旦文本被转换为分词,ES将会对每个分词运用分词过滤器(token filter)。这些分析过滤器可以将一个分词作为输入,然后根据需要进行修改、添加或删除。图1给出的例子中,有3种分词过滤器:第一个将分析转为小写,第二个删除停用词“and”,第三个将词条“tools”作为“technologies”的同义词进行添加。

(4)分词索引
当分词经过零个或多个分词过滤器,它们将被发送到Lucene进行文档的索引,这些分词组成了倒排索引。

零个或多个字符过滤器、一个分词器、零个或多个分词过滤器组成了一个分析器(analyzer)。搜索在索引中执行之前,根据所使用的查询类型,分析同样可以运用到搜索的文本。如match、match_phrase在搜索之前会对文本执行分析步骤,而term和terms则不会。

二、分析文档

有以下两种方式指定字段所使用的分析器:

  • 创建索引时,为特定的索引进行设置。

  • 在ES配置文件中,设置全局分析器。

(1)在索引创建时增加分析器

下面的代码在创建myindex索引时定制了分析器,为所有的分析步骤指定了定制的部分。


http://www.ngui.cc/el/5716225.html

这篇关于触类旁通Elasticsearch之吊打同行系列:分析篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143017

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File