强大搜索引擎背后的秘密——ElasticSearch基本概念解析

知其然知其所以然2024-04-12 10:11:08  111

大家好,我是小米!今天我要和大家分享的是关于ElasticSearch的基本概念,特别是IK分词器、索引、映射以及文档等方面的知识。作为一名热爱技术、喜欢分享的小编,我希望通过这篇文章,能够帮助大家更好地了解ElasticSearch,提升大家在技术面试中的竞争力!

IK分词器

IK分词器是ElasticSearch中一种专门用于处理中文文本的分词器。它的作用是将输入的中文文本按照一定规则切分成一个个独立的词语,为后续的检索和分析提供支持。与传统的分词器相比,IK分词器更加智能和高效,能够根据中文语境进行词语切分,提高了搜索的准确性和效率。IK分词器的出现,为中文文本的全文检索提供了有力的工具和支持。

IK分词器3.0的特性

IK分词器3.0是在IK分词器的基础上进行了全面升级和优化,带来了许多新的特性和功能,让我们一起来了解一下吧!

IK分词器3.0采用了一种独特的“正向迭代最细粒度切分算法”,这种算法具有高效、准确的特点。它能够将文本快速、精准地切分成最小的词语单位,为后续的索引和检索提供了可靠的基础。同时,这种算法还具有较高的处理速度,达到了每秒60万字的高速处理能力,大大提升了系统的性能。

IK分词器3.0引入了多子处理器分析模式,通过同时处理多个子分词器,充分利用了多核处理器的性能优势,提高了分词器的并发处理能力。这种模式不仅提升了分词器的效率,还增强了系统的稳定性和可靠性。

IK分词器3.0支持个人词条的优化的词典存储,用户可以根据自身需求进行词典存储优化,避免了传统词典存储方式的内存浪费问题,提升了系统的内存利用率和性能表现。同时,更小的内存占用也为系统的部署和运行带来了便利。

IK分词器3.0还引入了针对Lucene全文检索优化的查询分析器IKQueryParser,通过采用歧义分析算法优化查询关键字的搜索,提高了检索的准确性和效率。这使得系统在面对复杂的检索需求时能够更加灵活和高效地处理,为用户提供更优质的搜索体验。

排列组合是IK分词器3.0的一个重要特性,它能够通过排列组合的方式,极大地提高Lucene检索的命中率。这意味着系统能够更加准确地匹配用户的检索关键词,从而提升搜索结果的质量和准确性,满足用户对于搜索结果的高要求。

IK分词器3.0还提供了ext_dict功能,用于存储个人词条等自定义词典。用户可以根据自身的业务需求,将自定义的词条加入到词典中,提高分词器对特定领域的适应性和准确性。

stop_dict是IK分词器3.0的一个停用词词典,用户可以在其中定义一些常见的停用词,如“的”、“是”等,用于过滤掉一些无关紧要的词语,提升检索的准确性和效率。

同义词词典是IK分词器3.0的另一个重要功能,用户可以在same_dict中定义一些同义词,如“手机”、“电话”等,帮助扩展检索范围,提升检索的全面性和准确性。

索引(类数据库)

在ElasticSearch中,索引类似于传统数据库中的数据库,它是用于存储和组织文档数据的逻辑集合。每个索引都包含了一系列的文档,每个文档都是一个JSON对象。索引在ElasticSearch中具有非常重要的作用,它决定了文档的存储方式、搜索效率以及数据的分片和副本等参数。

设置索引库:在创建索引时,我们可以设置一些参数,如分片数、副本数等,来优化索引的性能和可靠性。分片数决定了索引在存储和搜索时的并行性能,副本数则决定了数据的可靠性和容错能力。通过合理设置这些参数,可以充分发挥ElasticSearch的性能优势,提升系统的稳定性和可靠性。

定义索引库的分片数副本数等:在定义索引库时,我们还可以指定一些其他参数,如分片路由、数据节点、映射类型等,来进一步优化索引的性能和功能。分片路由可以根据文档的某个字段值进行数据的分片和存储,提高数据的分布均衡性和搜索效率;数据节点则决定了索引的数据存储位置,可以根据业务需求进行灵活配置;映射类型则用于定义文档的字段类型和分词器,影响了数据的搜索和分析效果。

映射(类表设计)

在ElasticSearch中,映射类似于传统数据库中的表设计,它定义了文档中各个字段的数据类型、分词器类型以及是否需要进行存储或者创建索引等信息。映射在ElasticSearch中扮演着非常重要的角色,直接影响了文档的存储结构、搜索效率以及数据的分析和可视化等功能。

字段的数据类型:在映射中,我们需要为每个字段指定合适的数据类型,包括字符串、整数、浮点数、日期等。合理选择字段的数据类型可以提高系统的存储效率和搜索性能,避免不必要的数据类型转换和存储空间浪费。

分词器类型:分词器类型用于指定文档中某个字段的分词器,不同的字段可以采用不同的分词器来满足不同的检索需求。常用的分词器类型包括标准分词器、IK分词器、Whitespace分词器等,用户可以根据实际需求选择合适的分词器类型。

是否要进行存储或者创造索引:在映射中,我们还可以指定某个字段是否需要进行存储或者创建索引。如果需要对某个字段进行全文检索或者聚合分析,则需要将其创建索引;如果某个字段只需要在文档中存储,而不需要进行搜索或者分析,则可以选择不创建索引,以节省存储空间。

其他映射属性:除了上述基本属性外,映射还可以定义一些其他属性,如字段的分析器、索引分片、数据节点路由等。通过合理设置这些属性,可以进一步优化映射的性能和功能,满足不同业务场景下的需求。

文档(数据)

在ElasticSearch中,文档是组成索引的基本单位,类似于传统数据库中的数据行。每个文档都是一个JSON格式的数据对象,包含了一条完整的记录信息。文档可以是结构化的数据,也可以是非结构化的数据,它们以键值对的形式存储在索引中。

全量更新用Put:当我们需要更新文档的全部字段时,可以使用全量更新(Put)的方式。通过发送一个包含完整文档信息的HTTP请求,ElasticSearch会将原有的文档替换为新的文档。这种更新方式适用于需要一次性更新全部字段的场景,可以保证文档的数据完整性和一致性。

局部更新用Post:相比之下,局部更新(Post)则是在原有文档的基础上进行部分字段的更新。通过发送一个包含待更新字段信息的HTTP请求,ElasticSearch会将指定字段更新为新的值,而保持其他字段的不变。这种更新方式适用于只需更新部分字段的场景,可以减少网络传输和系统资源的消耗,提高更新效率和性能。

文档的数据结构:文档的数据结构由其所属的索引的映射类型定义,包含了各个字段的数据类型、分词器类型等信息。在ElasticSearch中,文档的数据结构可以根据实际需求进行动态映射或者静态映射,灵活适应不同的数据模型和业务场景。

文档的唯一标识:每个文档在索引中都有一个唯一的标识符,称为文档ID。文档ID可以由ElasticSearch自动生成,也可以由用户指定,用于唯一标识和检索文档。在进行文档的增删改查操作时,需要指定文档的ID来确定操作对象。

END

通过本文的介绍,相信大家对ElasticSearch的基本概念有了更深入的了解。在面试中,对于这些基本概念的掌握将会为我们的技术面试增添不少优势。希望大家能够通过不断学习和实践,提升自己的技术水平,成为技术领域的佼佼者!感谢大家的阅读,我们下期再见!

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/192917.html
0
随机主题
攻守转换丝滑流畅!火箭以牙还牙有仇必报!霍师傅最终无可奈何!争议!NBA最佳阵容引球迷不满,这仨人凭啥入选?降价就会冲的小米手机, 很多人直接选了这两款, 小米13Ultra在内法国公开和美国对着干,马克龙真的醒悟了欧盟连续第三个月增加俄罗斯化肥购买量浦江县交通运输综合行政执法队赴浦新矿业公司开展运输专项检查布局5G导致千亿资金打水漂? 外籍院士揭露真实的状态!情绪时代(2)|你为何而感动: “感动”的记忆与治理乌苏为10家拥军企业授牌女子为了帮衬娘家, 婚内转移财产300万, 丈夫得知后诉讼离婚姚明真笑了!辽宁豪取三连冠,郭艾伦和杨鸣拥抱,赵继伟表情抢镜卷价格, 卷新老车主权益, 纯电SUV铂智4X起步价14.98万元实测电脑内存条DDR5的 7600能比6400频率提升多少帧 内存条避坑指南底盘革新之作——问界新M7 Max焕新版即将正式上市俄能源部: 俄罗斯4月产量因技术原因超过配额 将提交补偿计划如何选择适合你的CPU?一分钟教会你认识CPU!2024上半年值回票价的5部电影, 你要是一部都没看, 那就太遗憾了重磅! 加拿大启动偏远和法语社区移民试点! 地区扩大到15个欧阳夏丹采访尴尬记: 离职后现身山西小馆, 遭遇冷漠回应求新、求变的《梦幻西游》追求的是有血有肉的角色!苦命的人! 叙利亚第一夫人又被确诊癌了, 老美称: 她等于一个师
最新回复(0)