简介
Elasticsearch是一个基于Lucene构建的开源搜索引擎,简称ES。它是使用Java语言开发的,并提供了简单易用的RestFul API,是一种流行的企业级搜索引擎。
Elasticsearch的术语
Elasticsearch与MySQL概念上的类比如下表:
MySQL | Elasticsearch |
---|---|
Table | Index(Type) |
Row | Document |
Column | Field |
Schema | Mapping |
Index(索引):一个索引是拥有几分相似特征的文档的集合,类似与MySQL中的Table。
Type(类型):类型是索引中的一个逻辑上的分类或分区,Type的概念已经被逐渐弱化,在Elasticsearch 7.X中,Type的概念已经被删除。
Document(文档):一个文档是一个可被索引的基础信息单元,类似表中的一条记录。
Field(字段):类似与表中的列。
Mapping(映射):类似于MySQL中表的schema。
Elasticsearch安装
安装
下载:
代码语言:javascript复制cd /opt/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz
解压:
代码语言:javascript复制tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
创建用户
Elasticsearch不允许使用root用户启动,所以需要创建用户并将Elasticsearch目录的拥有者设置为创建的新用户:
代码语言:javascript复制useradd es
passwd es
chown -R es:es /opt/elasticsearch-7.12.1
修改配置
1.修改conf/elasticsearch.yml,添加配置:
代码语言:javascript复制cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
cluster.name:集群名称,默认为elasticsearch。
node.name:节点名称。
network.host:此处配置es服务可以被任何机器访问。
http.port:HTTP端口。
cluster.initial_master_nodes:使用一组初始的符合主节点的节点引导集群,当第一次启动Elasticsearch集群时,集群引导步骤将确定在第一次选举中计票的符合主资格的节点集。
2.修改/etc/security/limits.conf,添加配置:
代码语言:javascript复制es soft nofile 65536
es hard nofile 65536
3.修改/etc/security/limits.d/20-nproc.conf,添加配置:
代码语言:javascript复制es soft nofile 65536
es hard nofile 65536
* hard nproc 4096
4.修改/etc/sysctl.conf,添加配置:
代码语言:javascript复制vm.max_map_count=655360
5.退出重新登录新用户。
启动Elasticsearch
前台启动:
代码语言:javascript复制/opt/elasticsearch-7.12.1/bin/elasticsearch
后台启动:
代码语言:javascript复制/opt/elasticsearch-7.12.1/bin/elasticsearch -d
访问localhost:9200,如果返回结果如下则表示启动成功:
代码语言:javascript复制{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "K5zjHV0LTQ6fCB-f_klulw",
"version" : {
"number" : "7.12.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "3186837139b9c6b6d23c3200870651f10d3343b7",
"build_date" : "2021-04-20T20:56:39.040728659Z",
"build_snapshot" : false,
"lucene_version" : "8.8.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Elasticsearch目录介绍
bin:可执行脚本目录。
config:配置文件目录。
data:分配在节点上的每个索引/分片的数据文件的位置。
logs:日志文件目录。
plugins:插件文件目录。
lib:类库。
jdk:内置JDK目录。如果配置了环境变量JAVA_HOME,则Elasticsearch启动时会使用JAVA_HOME作为Java路径,否则使用Elasticsearch根目录下内置的JDK目录作为Java路径。
modules:模块目录。