Elasticsearch学习系列之一:基础知识与软件安装

引言

从本文开始主要介绍当下比较火的Elasticsearch相关的内容。学习一项新技术大致会按照这项技术是什么、它可以解决什么问题,如何使用、使用的原理是什么我们能做什么样的拓展这样的套路来进行。那本文主要介绍Elasticsearch是什么以及能解决什么问题。

  • 基本概念
  • Elasticsearch安装
  • 总结

一、基本概念

1、Elasticsearch是什么

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。它是一个分布式、RESTful 风格的搜索和数据分析引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch支持分布式,可以轻松扩展至


2、Elasticsearch主要解决什么问题

当数据达到亿级别时,我们想搜索数据


3、Elasticsearch核心概念

下表为关系性数据库与Elasticsearch之间的概念对比,如下所示:

RDBMS Elasticsearch
Table Index(Type)
Row Document
Column Field
Schema Mapping
SQL DSL

NRT(Near Realtime)

Elasticsearch是近实时的,它是个分布式系统,不但要对数据进行持久化同时需要将数据解构 为方便进行全文检索的数据结构。


Node

节点就是Elasticsearch的实例,主要x向外界提供数据的存储以及集群的搜索与索引功能。节点的名字全局唯一。


Cluster

集群,所谓集群即为一个节点或者多个节点的集合。共同提供存储以及全文检索的服务。集群的名称也是全局唯一的,Elasticsearch集群是自组织的,只需要将节点指定为对应集群名称下的节点即可。


Document

所谓文档,即相当于关系型数据库中的一行数据。文档是构建索引的基本单元。譬如一条用户数据、一条订单数据都可以看作为一个文档。文档都是以Json格式进行描述,Json是一种普遍使用的互联网数据格式。在index中可以存储任意数量的文档。


Index

分为两层意思,一是建立索引,而是对应的索引文件。索引一个文档就是存储一个文档到一个索引 (名词)中以便被检索和查询。


Shard and Replicas

Elasticsearch是分布式搜索引擎,每个索引都有一个或多个分片,索引的数据被分配到各个分片上, 这就相当于一堆沙子可以由不同的容器来装。

复制即为分片的备份。


4、Elasticsearch特性

(1)分布式高可用搜索引擎

(2)多租户


支持多个索引

支持索引级别配置

(3)丰富的API


提供HTTP RESTful API接口,便于调用集成

Java 本地 API

所有API都执行自动节点操作重路由

(4)面向文档


不需要预先定义模式

模式可以用来对索引过程进行自定义

(5)可靠的异步写后置,可实现长期持久性


(6)近实时查询


(7)以Lucene库为基础


每个分片都是一个功能齐全的Lucene索引

Lucene的所有功能都很容易通过简单的配置/插件暴露出来

(8)每次操作保持一致性


单文档级别的操作具有原子性、一致性、隔离性和持久性


二、Elasticsearch安装

下载网址:https://www.elastic.co/cn/downloads/

Github地址:https://github.com/elastic/elasticsearch

Elasticsearch安装目录如下:

目录名称 配置文件 功用描述
bin 包含很多脚本文件,如启动脚本等,安装插件还有其他
config elasticsearch.yml 集群配置文件、user等配置信息
jdk java运行环境
data path.data 运行数据文件
lib path.data java的类库
logs path.log 相关日志文件
plugins 包含所有已安装插件

三、总结

本文主要介绍了Elasticsearch是什么以及解决什么样的问题可以用到它,同时对Elasticsearch的核心概念以及安装做了说明,旨在让大家对Elasticsearch有个初步的认识。

上一篇:如何更改DotNetNuke(DNN)的默认语言


下一篇:PMP项目管理视频更新完毕