Elasticsearch

Elasticsearch,第1张

Elasticsearch 1 Elasticsearch基础

Elaticsearch简称为ES,是一个开源的可扩展的分布式的全文检索引擎,它可以近乎实时的存储、检索数
据。本身扩展性很好,可扩展到上百台服务器,处理PB级别的数据。ES使用Java开发并使用Lucene作
为其核心来实现索引和搜索的功能,但是它通过简单的RestfulAPI和javaAPI来隐藏Lucene的复杂性,
从而让全文搜索变得简单。

1.1 特点

Elasticsearch的特点是它提供了一个极速的搜索体验。这源于它的高速(speed)。相比较其它
的一些大数据引擎,Elasticsearch可以实现秒级的搜索,速度非常有优势。Elasticsearch的
cluster是一种分布式的部署,极易扩展(scale )这样很容易使它处理PB级的数据库容量。最重要
的是Elasticsearch是它搜索的结果可以按照分数进行排序,它能提供我们最相关的搜索结果
(relevance) 。

1.2 企业使用场景

常见场景

常见案例

1.3 主流全文搜索方案对比

Lucene、Solr、Elasticsearch是目前主流的全文搜索方案,基于倒排索引机制完成快速全文搜索。

三者之间的区别和联系

2 elasticsearch入门使用

Elasticsearch是基于Lucene的全文检索引擎,本质也是存储和检索数据。ES中的很多概念与MySQL类 似 可以按照关系型数据库的经验去理解。

2.1 Elasticsearch IK分词器


扩展词:就是不想让哪些词被分开,让他们分成一个词

停用词:有些词在文本中出现的频率非常高。但对本文的语义产生不了多大的影响。例如英文的a、
an、the、of等。或中文的”的、了、呢等”。这样的词称为停用词。停用词经常被过滤掉,不会被进行
索引。在检索的过程中,如果用户的查询词中含有停用词,系统会自动过滤掉。停用词可以加快索引的
速度,减少索引库文件的大小。

同义词:语言博大精深,有很多相同意思的词,我们称之为同义词,比如“番茄”和“西红柿”,“馒头”和“馍”等。在
搜索的时候,我们输入的可能是“番茄”,但是应该把含有“西红柿”的数据一起查询出来,这种情况叫做
同义词查询。
注意:扩展词和停用词是在索引的时候使用,而同义词是检索时候使用。

2.2 索引 *** 作(创建、查看、删除)







2.3 映射 *** 作



2.4 文档增删改查及局部更新

文档,即索引库中的数据,会根据规则创建索引,将来用于搜索。可以类比做数据库中的一行数据。








3 elasticsearch 高级应用 3.1 映射高级



动态映射

自定义动态映射
如果你想在运行时增加新的字段,你可能会启用动态映射。 然而,有时候,动态映射 规则 可能不太智
能。幸运的是,我们可以通过设置去自定义这些规则,以便更好的适用于你的数据。

当 Elasticsearch 遇到一个新的字符串字段时,它会检测这个字段是否包含一个可识别的日期,比如
2014-01-01 如果它像日期,这个字段就会被作为 date 类型添加。否则,它会被作为 string 类型添加。
有些时候这个行为可能导致一些问题。想象下,你有如下这样的一个文档:
{ “note”: “2014-01-01” }
假设这是第一次识别 note 字段,它会被添加为 date 字段。但是如果下一个文档像这样:
{ “note”: “Logged out” }
这显然不是一个日期,但为时已晚。这个字段已经是一个日期类型,这个 不合法的日期 将会造成一个
异常。
日期检测可以通过在根对象上设置 date_detection 为 false 来关闭

3.2 Query DSL



3.2.1 词条级搜索(term-level queries)

可以使用term-level queries根据结构化数据中的精确值查找文档。结构化数据的值包括日期范围、IP
地址、价格或产品ID。
与全文查询不同,term-level queries不分析搜索词。相反,词条与存储在字段级别中的术语完全匹
配。






3.2.2 复合搜索(compound query)










3.3 Filter DSL

3.4 定位非法搜索及原因

3.5 聚合分析











3.6 Elasticsearch零停机索引重建

Elasticsearch是一个实时的分布式搜索引擎,为用户提供搜索服务,当我们决定存储某种数据时,在创
建索引的时候需要数据结构完整确定下来,与此同时索引的设定和很多固定配置将不能改变。当需要改
变数据结构时就需要重建索引,为此,Elasticsearch团队提供了辅助工具帮助开发人员进行索引重建。






零停机索引重建 *** 作的三个方案,从自研功能、scroll+bulk到reindex,我们作为Elasticsearch的使用
者,三个方案的参与度是逐渐弱化的,但稳定性却是逐渐上升的,我们需要清楚地去了解各个方案的优
劣,适宜的场景,然后根据实际的情况去权衡,哪个方案更适合我们的业务模型.

3.7 Elasticsearch Suggester智能搜索建议

4 Elasticsearch高可用分布式集群 4.1 核心概念



4.2 Elasticsearch分布式架构


4.3 集群规划




4.5 分布式集群调优策略











5 Elasticsearch 数据模型构建



数据建模的意义

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5635540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存