(2)ElasticSearch文档的基本操作与分词

Elasticsearch文档操作 文档可以类比为关系型数据库中的表数据 阅读详情

一、文档的基本CRUD与批量操作

1、文档的CRUD操作
(1)Type名,约定都用_doc
(2)Create:如果ID已经存在,会失败
(3)Index:如果ID不存在,创建新的文档。否则,先删除现有的文档,在创建新的文档,版本会增加。
(4)Update:文档必须已经存在,更新只会对相应字段做增量修改
在这里插入图片描述

2、Create一个文档
(1)支持自动生成文档ID和指定文档ID两种方式
(2)通过调用“post movies/_doc”,系统会自动生成dociment id
在这里插入图片描述
在这里插入图片描述

(3)使用http put movies/_create/1创建时,url中显示指定_create,此时如果该id的文档已经存在,操作失败
在这里插入图片描述
3、Get一个文档
(1)找到文档,返回HTTP 200

  • 版本信息,同一个id的文档,即使被删除,Version号也会不断增加
  • _source中默认包含了文档的所有原始信息

(2)找不到文档,返回HTTP 404
在这里插入图片描述
在这里插入图片描述

4、Index文档
(1)Index和Create的区别:如果文档不存在,就索引新的文档。否则现有的文档会被删除,新的文档被索引并且版本+1
在这里插入图片描述
在这里插入图片描述

5、Update文档
(1)Update方法不会删除原来的文档,而是实现真正的数据更新
(2)Post方法/Payload需要包含在“doc”中
在这里插入图片描述
在这里插入图片描述

6、bulk api
(1)支持一次API调用中,对不同的索引进行操作
(2)支持四种类型

  • index
  • create
  • update
  • delete

(3)可以在url中指定index,也可以在请求的payload中进行
(4)操作中单条操作失败,并不会影响其他操作
(5)返回结果包括了每一条操作执行的结果
在这里插入图片描述
7、批量读取
(1)批量操作,可以减少网络连接所产生的开销
在这里插入图片描述

二、倒排索引

(1)要理解正排索引和倒排索引,可以看以下例子,比如你要找到elasticsearch这个单词
在这里插入图片描述

  • 正排索引就是从文档ID到文档内容再到单词
  • 倒排索引就是从单词到文档内容再到文档ID

(2)倒排索引

  • 单词词典(Term Dictionary),记录所有文档的单词,记录单词到倒排列表的关联关系。单词词典一般比较大,可以通过B+树或者哈希拉链法实现,以满足高性能的插入与查询。
  • 倒排列表(Posting List)记录了单词对应的文档结合,由倒排索引项组成

(3)倒排索引项

  • 文档ID
  • 词频TF:该单词在文档中出现的次数,用于相关性评分
  • 位置(Position):单词在文档中分词的位置。用于语句搜索(phrase query)
  • 偏移(Offset):记录单词开始结束位置,实现高亮显示

elasticsearch单词对应的倒排索引,例子如下:
在这里插入图片描述

(4)ElasticSearch的倒排索引

  • ElasticSearch的JSON文档中的每个字段,都有自己的倒排索引
  • 可以指定对那些字段不做索引,优点是节省存储空间,缺点是字段无法被搜索

三、Analyze分词

1、Analyze的基本定义
(1)Analysis与Analyzer

  • Analysis:文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词
  • Analysis:是通过Analyzer来实现的,可使用ElasticSearch内置的分析器/或者按需要定制化分析器
  • 除了在数据写入时转换词条,匹配Query语句时也需要用相应的分析器对查询语法进行分析

(2)分词器是专门处理分词的组件,Analyzer由三部分组成。Character Filters(针对原始文本处理,例如去除html)/Tokenizer(按照规则切分单词)/Token Filter(将切分的单词进行加功,小写,删除stopword(例如:in、on、the等),增加同义词)
在这里插入图片描述

(3)ElasticSearch的内置分词器

  • Standard Analyzer:默认分词器,按照词切分,小写处理
  • Simple Analyzer:按照非字母切分(符号被过滤),小写处理
  • Stop Analyzer:小写处理,停用词过滤(the,a,is)
  • Whitespace Analyzer:按照空格切分,不转小写
  • Keyword Analyzer:不分词,直接将输入当作输出
  • Patter Analyzer:正则表达式,默认\W+(非字符分割)
  • Language:提供了30多种常见语言的分词器
  • Customer Analyzer:自定义分词器

(4)使用_analyzer

  • 直接使用指定Analyzer进行测试

在这里插入图片描述
在这里插入图片描述

  • 指定索引的字段进行测试,默认使用Standard 分词器
    在这里插入图片描述

  • 自定义分词进行测试
    在这里插入图片描述
    在这里插入图片描述

2、Analyze的类型
(1)Standard Analyzer

  • 默认分词器

  • 按词切分

  • 小写处理
    在这里插入图片描述
    (2)Simple Analyzer

  • 按照非字母切分,非字母的都被去除

  • 小写处理
    在这里插入图片描述

(3)Whitespace Analyzer

  • 按照空格切分
    在这里插入图片描述

(4)Stop Analyzer

  • 相比Simple Analyzer
  • 多了stop filter,会把the、is、a等修饰性词去掉
    在这里插入图片描述

(5)Keyword Analyzer

  • 不分词,直接将输入当一个term输出
    在这里插入图片描述

(6)Pattern Analyzer

  • 通过正则表达式进行分词
  • 默认式是\W+,非字符的符号进行分隔
    在这里插入图片描述

(7)Language Analyzer

  • 为不同的语言提供了不同的Analyzer
    在这里插入图片描述
    三、中为分词

(1)、中为分词的难点

  • 中文句子,切分成一个一个词(不是一个个字)
  • 英文中,单词有自然的空格作为分隔
  • 一句中文,在不同的上下文,有不同的理解,例如:这个苹果,不大好吃\这个苹果,不大,好吃
  • 一些例子,他说的确实在理/这事的确确定不下来

(2)ICU Analyzer

  • 需要安装plugin,Elasticsearch-plugin install analysis-icu
  • 提供了Unicode的支持,更好的支持亚洲语言
    在这里插入图片描述
    如果用standard分词,那么会把语句分词一个个中文
    在这里插入图片描述
    在这里插入图片描述
    如果用icu_analyzer分词,因为icu_analyzer支持中文较好,会根据语义分词
    在这里插入图片描述

在这里插入图片描述

(3)更好的、更智能的中文分词器

  • ik
    支持自定义词库,支持热更新分词词典
    https://github.com/medcl/elasticsearch-analysis-ik/tree/master
    ik有两种分词器,如下:

ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query;

ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。

我们可以看下”他说的确实在理“在这两个分词器下的效果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • THULAC
    THU Lexucal Analyzer for Chinese,清华大学自然语言处理和社会人文计算实验室的一套中文分词器
    https://github.com/microbun/elasticsearch-thulac-plugin
Elasticsearch —— ES 环境搭建、概念、基本操作、文档操作、SpringBoot继承ES 链接:提取码: xr76一、注:环境搭建过程中的命令窗口不能关闭,关闭了服务就会关闭(除了修改设置后重启的)●ES 下载地址:默认打开是最新版本新建一个文件夹,重名为 ES ,将解压在 bin 目录中 双击启动 elasticsearch.bat访问 http://127.0.0.1:9200成功●前提需要安装 nodejsgithub 下载 elasticsearch head :解压从界面访问 9200 服务会出现跨域问题。 阅读详情

相关推荐

ElasticSearch——全文搜索引擎

一、为什么需要全文搜索引擎? 首先先来了解一个概念,在我们生活中一般来说有两种数据:结构化数据、非结构化数据 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据: 非结构化数据又可称为全文数据,指不定长或无固定格式的数据,如邮件,word文档等。 对于结构化数据我们可以直接从数据库查询,而对于非结构化的数据此时就要用到全文检索的方式查询,比如对一个文档或者网页中的内容文本每个词建立一个索引,把这些非结构化的变成结构化的方式然后来查询。 全文搜索引擎百度百科定义:全文搜索引擎是目前

hl404的博客 1万+

Elasticsearch分词机制、IK分词器、自定义分词、批量管理

分词 分词是指文本转换成一系列单词(term or token)的过程,也可以叫做文本分析,关键词为Analysis。 举例 彭于晏是最帅的明星 分词为:(彭于晏)(最帅)(明星) Character Filter 分词机制 效果 Character Filter 对原始文件进行处理:例如去除html标签,特殊字符等 Tokenizer 将原始文件进行分词:例:二院二部(二院、二部) Token Filters 分词后的关键字进行加工:例转小写、删除语气词、近义词、同义词等 示例

chuang777的博客 659

搜索引擎Elasticsearch+es-mysql同步+ik分词

搜索引擎Elasticsearch+es-mysql同步+ik分词 Elasticsearch Elasticsearch是一个搜索引擎,我个人认为可以理解为是数据库,如下图: 普通数据库 搜索引擎Elasticsearch 数据库 索引index 表 类型type 行 文档document 常用操作 PUT:创建索引 http://localhost:9200...

qq_38976087的博客 2352

ElasticSearch-文档创建的几种方法与区别

总结一下ES中创建文档的几种方式,并演示他们的不同

MZZHAO23的博客 849

elasticsearch(ES)简介及安装-----笔记

ES是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。ES结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。kibana负责数据可视化,elasticsearch负责存储、计算、搜索数据,logstash\Beats负责数据抓取。elasticsearch底层实现是Lucene计术。

weixin_44846205的博客 2386

ElasticSearch的使用、Kibana和ES-Head可视化工具

ElasticSearch的使用、Kibana和ES-Head可视化工具

m0_51453764的博客 2282

Elasticsearch 索引文档时create、index、update的区别【学习记录】

elasticsearch中create、index、update都可以实现插入功能,但是实现原理并不相同。

单枪匹码 3864

Elasticsearch搜索引擎

本篇博客系统地介绍了Elasticsearch 7.14.0在windows环境下安装、基本使用、Springboot集成Elasticsearch以及ELK搭建。

weixin_44490884的博客 1676

Elasticsearch(五)--ES文档的操作(上)---写入文档

使用ES构建搜索引擎时需要经常对文档进行操作,除了简单的单条文档操作,有时还需要进行批量操作。我们这章主要学习ES文档的增删改的操作,由于涉及到的代码量会比较多,所以分为3篇文章分别说明文档的这个三个操作。那么我们对文档操作的学习除了在kibana客户端之外,还会涉及到java的highLevelClient相应的操作代码。那么话不多说,我们直接开始下面的学习、

学习不止境的博客 4206

elasticSearch 分词器踩的坑

elasticSearch 接入ik分词器踩的坑,记录下

°三度微凉的博客 1万+

【Elasticsearch】内置分词器和IK分词器

Elasticsearch是一个基于Lucene的分布式、RESTful风格的搜索和数据分析引擎。它旨在快速地存储、搜索和分析大量的数据,被广泛应用于各种领域,如日志分析、电商搜索、企业内容管理等。Elasticsearch的核心优势在于其分布式架构,能够处理PB级别的数据,并提供高可用性和可扩展性。它通过将数据分片存储在多个节点上,实现数据的并行处理和容错能力。同时,提供了简单易用的,方便开发者进行数据的索引搜索和管理。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 6022

Elasticsearch连续剧之分词器

ES文档的数据拆分成一个个有完整含义的关键词,并将关键词与文档对应,这样就可以通过关键词查询文档。要想正确地分词,需要选择合适的分词器。现在咱们来探索一下分词器的真实面目!前面两种分词器,各有优点,但是他们的功能确实不够完备,比如使用ik分词器可以对中文进行分词,但是却不能对拼音分词;所以在现实开发中,我们一般使用自定义分词器进行分词,这样既可以对文字分词,也可以对拼音分词,现在咱们来研究一下如何写一个ik+pinyin分词器。

狮子也疯狂的博客 1万+

USB通讯速度翻倍秘诀:手把手教你用WinUsb替代HID协议(附Zadig驱动配置图解)

本文详细介绍了如何通过WinUsb技术替代传统HID协议,实现USB通讯速度的显著提升。从技术对比、实现原理到Zadig驱动配置图解,手把手教你完成免驱高速通讯方案,适用于数据采集、固件升级等场景,实测速度可达HID协议的2倍以上。

weixin_29168675的博客 136

大型项目必备搜索神器,搜索引擎ElasticSearch详细教程

项目必备组件,站内搜索神器ElasticSearch详细教程,包含Elasticsearch的概念,环境搭建,ik分词器安装,ES存储形式,正向索引和倒排索引,以及ES索引库的基本操作、ES文档操作,以及Springboot集成ES。

小谷同学的博客 5028

产品失效你必须要知道的概念---MTBF、MTTF和FIT

如果我们想知道该电路在10年后仍能正常工作的几率,按照前面例子的相同计算步骤,结果将是90.3%。例如,假设一个TDK电容器的MTBF为6918年(16.5失效时间间隔,FIT),这并不意味着该电容器能持续这么久(显然,没有人能够对部件进行这么长时间的测试)。综上,MTBF和MTTF是用来描述系统或设备级别的故障间隔时间,而FIT是用来描述某单一器件的失效率的单位。MTBF和MTTF使用相同的计算方法,但MTBF用于可维修的产品,而MTTF用于不可维修或维修成本过高的产品。

weixin_49761275的博客 3835

【MagicDrive环境配置】新手配俩星期版

1.创建一个新的环境conda create -n newdrive python==3.82.激活该环境conda activate newdrive3.下载MagicDrive源码 git clone --recursive https://github.com/cure-lab/MagicDrive.git,如果出现时间超时八成是网的问题,直接自己下载解压就好3.我的cuda版本是11.7,但11.7导致后续安装有冲突,因此进入。

m0_46261292的博客 2203

Linux安装elasticsearch搜索引擎并配置

`-v es-plugins:/usr/share/elasticsearch/plugins`:挂载逻辑卷,绑定es的插件目录。- `-v es-data:/usr/share/elasticsearch/data`:挂载逻辑卷,绑定es的数据目录。- `-v es-logs:/usr/share/elasticsearch/logs`:挂载逻辑卷,绑定es的日志目录。- `--network es-net` :加入一个名为es-net的网络中,与elasticsearch在同一个网络中。

m0_74939895的博客 1835

2017全国大学生电子设计大赛B题 | 板球控制系统(四)机械设计相关

转载请注明出处。   转眼2019了诶,可能有些同学又该问了,哇向阳哥,你这个鸽子放的好,转眼大半年了一年都没更新,我也知道啊,说好的源码呢,挖的机械的坑呢?咕咕咕咕我也不想啊,我这不是懒吗!过年有空了,又到了收红包泡妹子玩游戏.......呸,学习准备比赛码代码的时候了,终于有点空闲,于是乎今晚先把机械的大坑填了。     咱话先说在最前面。机械这玩意,靠经验,也考想象力,更要命的还是出了...

王向阳的博客 3万+

Elasticsearch_分词器、搜索文档以及原生JAVA操作

需要对一段内容既进行文字分词,又进行拼音分词,此时需要自定义ik+pinyin分词器。在创建索引时设置自定义分词器//自定义分词器名 "tokenizer" : "ik_max_word" , //基本分词器 "filter" : "pinyin_filter" //配置过滤分词器 } } , "filter" : {

weixin_49076273的博客 3349

ubuntu18.04 升级Ubuntu 20.04

Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1060

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统,记录配置过程

Jack的小窝 5942

ElasticSearch全文搜索引擎

Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。Lucene适用于中小型项目 ,ES适用于中大型项目(它底层是基于lucene实现的)虽然全文搜索领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。

2201_75971147的博客 3235

海康安防平台接口调试指南:从签名生成到Vue项目集成

本文详细解析了海康安防平台接口认证规则,从签名生成到Vue项目集成的完整流程。通过核心机制解析、签名工具使用技巧及Vue项目中的优雅集成方案,帮助开发者高效完成接口调试,避免常见问题。特别适合需要将海康安防平台接口集成到Vue项目中的开发者参考。

weixin_42533120的博客 439

Elasticsearch【7】06:Elasticsearch分词详解:ES分词介绍、倒排索引介绍、分词器的作用、停用词

一、ES分词介绍 ES中在添加数据,也就是创建索引的时候,会先对数据进行分词。 在查询索引数据的时候,也会先根据查询的关键字进行分词。 所以在ES中分词这个过程是非常重要的,涉及到查询的效率和准确度。 假设有一条数据,数据中有一个字段是titile,这个字段的值为LexCorp BFG-9000。 我们想要把这条数据在ES中创建索引,方便后期检索。 创建索引和查询索引的大致流程是这样的: 图中左侧是创建索引的过程: 首先对数据进行空白字符分割,将LexCorp BFG-9000切分为LexCorp和BFG

weixin_40612128的博客 7108

RT-DETR改进策略【模型轻量化】| 替换骨干网络为EfficientNet v1 高效的移动倒置瓶颈结构

本文记录的是基于。采用了创新性的方法,通过精心平衡网络和来提升性能。本文将的设计优势融入RT-DETR中,提升RT-DETR的性能与效率,使其在目标检测任务中表现更为出色。本文配置了原模型中的共种不同大小的模型结构,以满足不同的需求。

Limiiiing的博客 534

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ES 分词器

顾名思义,文本分析就是把全文本转换成一系列单词(term/token)的过程,也叫分词。在 ES 中,Analysis是通过分词器(Analyzer) 来实现的,可使用 ES 内置的分析器或者按需定制化分析器。举一个分词简单的例子:比如你输入 Mastering Elasticsearch,会自动帮你分成两个单词,一个是 mastering,另一个是 elasticsearch,可以看出单词也被转化成了小写的。

tian830937的专栏 3010

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: (1)ElasticSearch基本概念介绍
下一篇: (3)ElasticSearch基本的查询语句
suixinghero
博客等级 码龄7年 10粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值