【Elasticsearch】- elasticsearch简介与使用环境安装
@TOC
elasticsearch基础介绍
简介
1. 是什么?
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。
Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
2. 能干什么?
它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
3. 实现原理
- 首先用户将数据提交到Elasticsearch 数据库中
- 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据
- 当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。
Elasticsearch数据存储与关系型数据库的比较
Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。
Elasticsearch数据存储与关系型数据库数据储存有以下联系:
Elasticsearch的安装
下载
Elasticsearch官网:https://www.elastic.co/cn/
Elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch
从官网下载Elasticsearch压缩包,然后解压即可使用。
目录结构
Elasticsearch解压后的目录结构如下:
各目录的解释如下:
目录 | 含义 |
---|---|
bin | 可执行脚本目录 |
config | 配置目录 |
jdk | 内置 JDK 目录 |
lib | 类库 |
logs | 日志目录 |
modules | 模块目录 |
plugins | 插件目录 |
运行
解压后,进入bin目录,双击elasticsearch.bat运行。
Elasticsearch启动后会暴露两个端口:
- 9300 端口为 Elasticsearch 集群间组件的通信端口
- 9200 端口为浏览器访问的 http协议 RESTful 端口。
测试
在浏览器访问: http://localhost:9200/。
返回如下信息表示Elasticsearch安装启动成功:
RESTful
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
在 REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEAD 和 OPTIONS。
RESTful具备如下特点:
- 每一个URI代表1种资源;
- 客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:
GET:用来获取资源,
POST:用来新建资源(也可以用于更新资源),
PUT:用来更新资源,
DELETE:用来删除资源; - 通过操作资源的表现形式来操作资源;
- 资源的表现形式是XML或者HTML;
- 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
- 点赞
- 收藏
- 关注作者
评论(0)