【Elasticsearch】【基础入门

网友投稿 672 2022-05-29

一、elasticsearch是什么

Elasticsearch是基于ApacheLucene全文搜索引擎库实现的一个实时的开源分布式搜索引擎。

Elasticsearch是一个分布式文档存储。Elasticsearch存储已序列化为JSON文档的复杂数据结构,而不是将信息存储为列形数据行。当您在集群中拥有多个Elasticsearch节点时,存储的文档会分布在集群中,并且可以从任何节点访问。

二、Elasticsearch能做什么

支持实时高效全文检索,支持实时高效结构化检索、分析

支持分布式实时文档存储

支持PB级的结构化或非结构化数据

支持拓展,Elasticsearch可配置并且灵活。

支持通过RestAPI与应用程序进行通信

三、Elasticsearch怎么安装(windows环境)

需要安装最新的java版本,因为ES也是java语言编写的,需要JVM的支持

下载最新版的Elasticsearch并解压(选择适合的操作系统版本,本次选择windows)

进入解压目录,cd到bin目录,运行elasticseach.bat文件,查看运行结果是否成功。

运行elasticsearch文件成功后,浏览器访问http://localhost:9200/,响应结果如下:

{

"name" : "主机名",

"cluster_name" : "elasticsearch",

"cluster_uuid" : "yqQn9A1fTzKfR064ypqT9w",

"version" : {

"number" : "7.3.2",

"build_flavor" : "default",

"build_type" : "zip",

"build_hash" : "1c1faf1",

"build_date" : "2019-09-06T14:40:30.409026Z",

"build_snapshot" : false,

"lucene_version" : "8.1.0",

【Elasticsearch】【基础】入门

"minimum_wire_compatibility_version" : "6.8.0",

"minimum_index_compatibility_version" : "6.0.0-beta1"

},

"tagline" : "You Know, for Search"

}

收到上面的响应之后,证明已经启动并运行一个Elasticsearch节点了。

如果想搭建一个集群启动多个节点则可以修改config目录下的elasticsearch.yaml文件,文件里面都有详细的配置说明,修改完yaml配置文件之后重启elasticsearch就会生效。

exit退出即可停止elasticsearch服务

四、如何在应用程序中使用Elasticsearch

Elasticsearch安装后,应用程序客户端都可以通过Elasticsearch提供等RestAPI进行与ES通信交互,如通过curl向ES发送请求;不区分语言,同时官方也提供了很多不同语言的客户端库和插件。比如提供了java相关的客户端库,在写java程序的时候,只需要依赖这些库

一个Elasticsearch请求curl组成:

curl -X '://:/?' -d ''

verb:适当的http方法:GET,POST,PUT,HEAD,DELETE

protocol: http或者https

host:Elasticsearch集群中任意节点的主机名,或者使用localhost表示本机

port: 运行Elasticseach HTTP服务的端口号,默认是9200

path:API的终端路径(例如_count路径表示返回集群中文档数量),path可能包含多个组件,例如_cluster/stats或_nodes/stats/jvm

query_string:查询字符串参数

body:一个json格式的请求体(如果需要的话)

配合kibana可视化操作Elasticsearch,简单高效

官网下载kibana

解压到指定目录,根据需要在config目录下修改kibana.yaml配置文件,如server.port,server.host和连接es的elasticsearch.hosts等参数

进入解压的bin目录下,执行启动文件,如windows的启动kibana.yaml

使用设置的host+port在浏览器上访问,如http://localhost:5601

浏览器访问/status路径可查看状态,如http://localhost:5601/status

打开路径,连接上es服务后,在kibana页面上就可以创建es的索引,就可以分析探索你的数据了

对es数据进行命令的直接操作可以使用Dev Tools控制台,通过命令行与es进行操作交互。

五、Elasticsearce基本概念

索引index:每个索引是一系列文档优化的集合,相当于关系数据库中的database

文档document:每个文档都是字段的集合,相当于关系数据库中表的行数据rows

类型type:表示一类类似的文档,相当于关系数据中的表table

字段field:每个字段都是包含key-value键值对的数据,相当于关系数据库中表的列columns

映射mapping:类似于DB的schema,描述这一个类型type中的所有文档可能具有的字段或属性,以及这些字段的类型,并且描述如何索引和存储这些字段

分片shards:是指将索引划分成多份,每一份就是一个分片,也叫主分片;分片分为两类:主分片和复制分片,这些分片都是一个独立的索引,可以被放置在集群中的任何节点上,方便数据拓展和平衡集群,同时可以复制分片,复制分片不会被分配在与主分片所在的节点上,复制分片主要作用于故障转移机制。

节点node:一个节点就是一个ES实例,第一个启动的节点默认就是master节点,其余节点都可以是候选节点(通过node.master设置),当master节点崩了,这些候选节点就有机会选取为master节点;每个节点都保存了集群信息的状态,只有master节点才能修改集群的状态信息。

Elasticsearch是面向文档(document oriented)的,它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。

在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以简单的对比传统关系型数据库:

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices   -> Types  -> Documents -> Fields

六、使用场景

在应用程序或者网站中添加搜索框的场景

存储和分析日志、指标和安全事件数据的场景

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

使用es作为存储介质自动执行业务工作流

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

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

Elasticsearch Java 实时流计算服务 CS

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:为什么我们说云原生时代,企业数字化转型更需要做好 API 全生命周期管理?
下一篇:SpringCloud系列使用Netflix Eureka进行服务治理
相关文章