首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

204 Elasticsearch 简介

1. ElasticSearch 简介

ElasticSearch是一个基于Lucene的布式搜索和分析引擎。

Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集,聚合和丰富您的数据并将其存储在Elasticsearch中。使用Kibana,您可以交互式地探索,可视化和共享对数据的见解,并管理和监视堆栈。Elasticsearch是建立索引,搜索和分析魔术的地方。

虽然并非每个问题都是搜索问题。ElasticSearch 主要使用场景案例:

将搜索框添加到应用或网站

存储和分析日志,指标和安全事件数据

使用机器学习自动实时建模数据行为

使用Elasticsearch作为存储引擎来自动化业务工作流程

使用Elasticsearch作为地理信息系统(GIS)管理,集成和分析空间信息

使用Elasticsearch作为生物信息学研究工具来存储和处理遗传数据

主要功能特性:

分布式的搜索引擎和数据分析引擎

全文检索,结构化检索,数据分析

对海量数据进行近实时的处理

2. 文档和索引

不同于关系型数据库,Elasticsearch是一个分布式文档型数据库。

索引可以认为是文档的优化集合,每个文档都是字段的集合,这些字段是包含数据的键值对。默认情况下,Elasticsearch对每个字段中的所有数据建立索引,并且每个索引字段都具有专用的优化数据结构。例如,文本字段存储在倒排索引中,数字字段和地理字段存储在BKD树中。使用按字段数据结构组合并返回搜索结果的能力使Elasticsearch如此之快。

定义自己的映射使您能够:

区分全文字符串字段和精确值字符串字段

执行特定于语言的文本分析

优化字段以进行部分匹配

使用自定义日期格式

使用无法自动检测到的数据类型,例如geo_point和geo_shape

3. 搜索和分析

Elasticsearch 提供了一个简单,一致的REST API,用于管理您的集群以及索引和搜索数据。为了进行测试,您可以直接从命令行或通过Kibana中的开发者控制台轻松提交请求。在您的应用程序中,您可以将Elasticsearch客户端用于您选择的语言:Java,JavaScript,Go,.NET,PHP,Perl,Python或Ruby。

高效的搜索为分析提供了保障。更进一步,通过机器学习模块让你可以预测未来。

4. 集群、节点和分片

Elasticsearch 天然的支持 分布式。

分片有两种类型:主数据库和副本数据库。索引中的每个文档都属于一个主分片。副本分片是主分片的副本。副本可提供数据的冗余副本,以防止硬件故障并增加处理读取请求(如搜索或检索文档)的能力。

创建索引时,索引中主碎片的数量是固定的,但是副本碎片的数量可以随时更改,而不会中断索引或查询操作。

作为起点:

旨在将平均分片大小保持在几GB到几十GB之间。对于具有基于时间的数据的用例,通常会看到20GB到40GB范围内的碎片。避免庞大的碎片问题。节点可以容纳的分片数量与可用堆空间成比例。通常,每GB堆空间中的分片数量应少于20。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191125A0PZ7P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券