03-ES核心概念理解&IK分词器详解

这篇具有很好参考价值的文章主要介绍了03-ES核心概念理解&IK分词器详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文档

就是我们的一条条数据

user

1 zhangsan 18

2 lisi 20

3 wangwu 50

之前说elasticsearch是面向文档的,那么就意味着索引和搜索数据的最小单位是文档,elasticsearch中,文档有几个重要属性:

  • 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含key:value !

  • 可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的!

  • 灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能使用,在elasticsearch中,对于字段是非常灵活的,有时候,我们可以忽略该字段,或者动态的添加一个新的字段。

尽管我们可以随意的新增或者忽略某个字段,但是,每个字段的类型非常重要,比如一个年龄字段类型,可以是字符串也可以是整形。因为elasticsearch会保存字段和类型之间的映射及其他的设置。这种映射具体到每个映射的每种类型,这也是为什么在elasticsearch中,类型有时候也称为映射类型。

类型

  • 就差不多mysql中的 int varchar

类型是文档的逻辑容器,就像关系型数据库一样,表格是行的容器。类型中对于字段的定义称为映射,比如name映射为字符串类型。我们说文档是无模式的,它们不需要拥有映射中所定义的所有字段,比如新增一个字段,那么elasticsearch是怎么做的呢?elasticsearch会自动的将新字段加入映射,但是这个字段的不确定它是什么类型,elasticsearch就开始猜,如果这个值是18,那么elasticsearch会认为它是整形。但是elasticsearch也可能猜不对,所以最安全的方式就是提前定义好所需要的映射,这点跟关系型数据库殊途同归了,先定义好字段,然后再使用,别整什么么娥子。

索引

就是数据库!

索引是映射类型的容器,elasticsearch中的索引是一个非常大的文档集合。索引存储了映射类型的字段和其他设置。然后它们被存储到了各个分片上了。我们来研究下分片是如何工作的。

物理设计︰节点和分片如何工作

一个集群至少有一个节点,而一个节点就是一个elasricsearch进程,节点可以有多个索引默认的,如果你创建索引,那么索引将会有个5个分片( primary shard ,又称主分片)构成的,每一个主分片会有一个副本( replica shard ,又称复制分片)

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

上图是一个有3个节点的集群,可以看到主分片和对应的复制分片都不会在同一个节点内,这样有利于某个节点挂掉了,数据也不至于丢失。实际上,一个分片是一个Lucene索引,一个包含倒排索引的文件目录,倒排索引的结构使得elasticsearch在不扫描全部文档的情况下,就能告诉你哪些文档包含特定的关键字。不过,等等,倒排索引是什么鬼?

倒排索引

elasticsearch使用的是一种称为倒排索引的结构,采用Lucene倒排索作为底层。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表。例如,现在有两个文档,每个文档包含如下内容:

study every day, good good up to forever #文档1包含的内容

To forever,study every day, good good up #文档2包含的内容

为了创建倒排索引,我们首先要将每个文档拆分成独立的词(或称为词条或者tokens),然后创建一个包含所有不重复的词条的排序列表,然后列出每个词条出现在哪个文档:

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

完全过滤掉无关的所有数据,提高效率!

elasticsearch的索引和Lucene的索引对比

在elasticsearch中,索引(库)这个词被频繁使用,这就是术语的使用。在elasticsearch中,索引被分为多个分片,每份分片是一个Lucene的索引。所以一个elasticsearch索引是由多个Lucene索引组成的。别问为什么,谁让elasticsearch使用Lucene作为底层呢!如无特指,说起索引都是指elasticsearch的索引。

接下来的一切操作都在kibana中的Dev Tools下的Console里完成。基础操作!

IK分词器详解

=========================================================================

什么是IK分词器 ?

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如““我爱狂神”会被分为"我"∵爱"∵"狂”"神”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

如果要使用中文,建议使用ik分词器!

IK提供了两个分词算法:ik_smart和ik_max_word,其中 ik_ smart为最少切分, ik_ max_word为最细粒度划分!一会我们测试!/

安装

下载地址 https://github.com/medcl/elasticsearch-analysis-ik

1.下载完毕之后,放入到我们的elasticsearch插件即可

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

2.重启观察elasticsearch

注意一个小问题 elasticsearch和ik也要版本对应。。。

解决办法

方法一、等待ik更新或者降级elasticsearch版本,确保两者版本完全一致

方法二、修改ik的配置(非长久之计,可解燃眉之急)plugin-descriptor.properties,将version改为与elasticsearch的版本一致即可

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们:

目录:

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

03-ES核心概念理解&IK分词器详解,程序员,elasticsearch,jenkins,大数据

Java面试核心知识点
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!**

[外链图片转存中…(img-VG99lFr5-1713271387565)]

Java面试核心知识点
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-859253.html

到了这里,关于03-ES核心概念理解&IK分词器详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES(二)| 安装ES、Kibana、IK分词器、拼音分词器(自动补全)

    上一篇:ES(一)| ES简介、倒排索引、索引库操作语法、文档操作语法、Java使用RestClient进行ES操作 安装包下载: 链接:https://pan.baidu.com/s/1Y1O0B8aG7qzRLFFVYo9nHw 提取码:hdyc 因为我们还需要部署 kibana 容器,因此需要让 es 和 kibana 容器互联。这里先创建一个网络: 这里我采用

    2023年04月08日
    浏览(52)
  • SpringBoot整合ES,ik分词器

    \\\"reason\\\": \\\"Failed to parse mapping: analyzer [ik_max_word] has not been configured in mappings\\\"  这是因为没有安装ES的IK分词器 下载地址 Release v8.7.0 · medcl/elasticsearch-analysis-ik · GitHub ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的 中

    2024年02月08日
    浏览(37)
  • ES搜索框架--设置IK分词器

    ES的默认中文分词效果太差了,稍微长一点的词句就完全匹配不到,于是选择使用安装IK中文分词器来实现索引的分词。 参考: https://blog.csdn.net/w1014074794/article/details/119762827 https://www.bbsmax.com/A/6pdDqDaXzw/ 一、安装 官网教程: https://github.com/medcl/elasticsearch-analysis-ik,注意版本对

    2024年02月08日
    浏览(41)
  • [ES]mac安装es、kibana、ik分词器

    1、创建一个网络,网络内的框架(es+kibana)互联 2、下载es和kibana 3、运行docker命令部署单点es+kibana(用来操作es) 说明 4、访问 5、查看日志 访问http://localhost:5601/ 点击这个,在里面写就行了 ​ 可选的有standard、english、chinese但是他们的中文都是一个字分一个词 下载这个 https:

    2024年02月11日
    浏览(36)
  • ES分布式搜索-IK分词器

    es在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入内容分词。但默认的分词规则对中文处理并不友好。 我们在kibana的DevTools中测试: 语法说明: POST:请求方式 /_analyze:请求路径,这里省略了http://192.168.12.131:9200,有kibana帮我们补充 请求参数,json风格: anal

    2024年03月14日
    浏览(91)
  • Docker安装es以及ik分词器

    https://github.com/medcl/elasticsearch-analysis-ik/releases 若出现下图则成功 分词的作用和关系型数据库中的模糊查询相似,不同的是es可以为字段中的每个分词创建索引,通过空间换时间的方式大大提高了模糊查询的效率。而关系型数据库用like模糊查询时只有like xxx%的情况下会利用索引

    2024年02月14日
    浏览(40)
  • docker安装es并挂载,ik分词器

    1.拉取镜像 2. 创建挂载目录  注意:  要开启权限chmod -R 777 文件路径 3.运行镜像,映射端口9200,9300 4.安装ik分词器 在/www/docker/elasticsearch/plugins创建ik文件夹 下载: https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip 然后上传ik文件压缩包,解压

    2024年02月13日
    浏览(38)
  • docker安装ES,IK分词器,Kibana

    dockerhub上自己搜要拉的镜像版本 运行报错了 报错原因:虚拟内存不足,把虚拟内存调整的稍微大一些即可(如果使用指令发现没有的话自行安装,文件不存在的话自行百度) es持久化,ES中所有数据都在容器中 /usr/share/elasticsearch/data es持久化+配置化都挂的宿主机上 ES持久化

    2024年02月12日
    浏览(41)
  • es elasticsearch 十 中文分词器ik分词器 Mysql 热更新词库

    目录 中文分词器ik分词器 介绍 安装 使用分词器 Ik分词器配置文件 Mysql 热更新词库 介绍 中文分词器按照中文进行分词,中文应用最广泛的是ik分词器 安装 官网下载对应版本zip 下载  放到  plugins 目录 新建 ik文件夹 考入解析zip 重启 es //分成小单词 使用分词器 ik_max_word分成

    2024年02月07日
    浏览(59)
  • Elasticsearch07:ES中文分词插件(es-ik)安装部署

    在中文数据检索场景中,为了提供更好的检索效果,需要在ES中集成中文分词器,因为ES默认是按照英文的分词规则进行分词的,基本上可以认为是单字分词,对中文分词效果不理想。 ES之前是没有提供中文分词器的,现在官方也提供了一些,但是在中文分词领域,IK分词器是

    2024年02月03日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包