ElasticSearch与Kibana简介及使用入门

Elasticsearch一款基于Apache Lucene™开源搜索引擎,其核心是迄今为止最先进、性能最好的、功能最全的搜索引擎库Lucene。Elasticsearch使用简单,具有非常强大的全文搜索功能:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

ElasticSearch中使用到的概念

准实时

Elasticsearch是一个准实时系统:一个文档从存储到它能够被检索只有一个很短的延迟(通常情况下为一秒)。

集群(Cluster)

为所有数据提供存储和检索等服务的结点(服务器)集合。默认的名字为“elasticsearch”,结点(服务器)也依据名字被指定要加入哪个集群。

结点(Node)

作为集群的一部分,为数据提供存储和检索服务的一台服务器。

索引(Index)

索引的概念类似于关系数据库中的数据库,是相关文档存储的地方。相应的,“索引一个文档”表示把一个文档存储在某个索引中。

类型(Type)

索引中文档的逻辑分类,类似于关系数据库中的表。

Elasticsearch 6.0.0.已经不支持在一个索引中建立多个类型,在以后版本中会移除类型这一个概念。

文档(Document)

一条完整的记录,类似于关系数据库中的元组。

域(Fields)

类似于关系数据库中的属性。

倒排索引

Elasticsearch会为文档中的每个字段都建立倒排索引,这是它实现高效搜索的基础之一。

ElasticSearch类比传统数据库

Relational DB Elasticsearch
Databases Indices
Tables Types
Rows Documents
Columns Fields

安装

Elasticsearch 需要 Java8 或更新的 Java 环境。Java 下载

下载 Elasticsearch 6.0.1 压缩包并解压

$ curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.tar.gz
$ tar -xvf elasticsearch-6.0.1.tar.gz

启动

$ cd elasticsearch-6.0.1/bin
$ ./elasticsearch

如果你不想使用默认的集群名和结点名,可以在启动时指定相应的参数:

$ ./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name

交互

Elasticsearch启动后是一个 http 服务,默认在本地的 9200 端口。可以通过 curl 或者 Kibana 控制台进行操作。使用 curl 的命令格式如下:

$ curl -X<VERB> '<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
  • VERB:HTTP 方法,如 GET、POST、PUT、HEAD、DELETE
  • PROTOCOL:http 或者 https 协议
  • HOST: Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
  • PORT: Elasticsearch HTTP服务所在的端口,默认为 9200
  • PATH: API路径
  • QUERY_STRING: 一些可选的查询请求参数,例如?pretty参数将使请求返回更加美观易读的JSON数据
  • BODY: 一个JSON格式的请求主体(如果请求需要的话)

例. 查询集群中结点的健康状况

$ curl -X GET "localhost:9200/_cat/health?v"
  • 绿色:一切安好
  • 黄色:所有结点均可用,某些结点
  • 9
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值