Elastic Stack 的核心
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
安装
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
支持的平台编辑
官方支持的操作系统和 JVM 的矩阵可在此处获得: 支持矩阵。Elasticsearch 在列出的平台上进行了测试,但它可能也适用于其他平台。
Java (JVM) 版本编辑
Elasticsearch 是使用 Java 构建的,并且在每个发行版中都包含来自 JDK 维护者 (GPLv2+CE)的捆绑版本的 OpenJDK。捆绑的 JVM 是推荐的 JVM,位于jdk
Elasticsearch 主目录的目录中。
要使用您自己的 Java 版本,请设置ES_JAVA_HOME
环境变量。如果您必须使用与捆绑的 JVM 不同的 Java 版本,我们建议使用受支持 的 Java 的 LTS 版本。如果使用已知错误的 Java 版本,Elasticsearch 将拒绝启动。使用您自己的 JVM 时,捆绑的 JVM 目录可能会被删除。
自己安装 Elasticsearch编辑
Elasticsearch 以以下包格式提供:
Linux 和 MacOS | 这些 |
视窗 | 该 |
| 该 |
| 该 |
| [测试版] 此功能处于测试阶段,可能会发生变化。设计和代码不如官方 GA 功能成熟,并且按原样提供,不提供任何保证。Beta 功能不受官方 GA 功能的支持 SLA 的约束。该 |
| 图像可用于将 Elasticsearch 作为 Docker 容器运行。它们可以从 Elastic Docker Registry 下载。 |
| 公式可从 Elastic Homebrew Tap 使用 Homebrew 包管理器在 macOS 上安装 Elasticsearch。 |
配置管理工具编辑
我们还提供以下配置管理工具来帮助进行大型部署:
木偶 | |
厨师 | |
Ansible |
下载并安装适用于 Linux 的归档文件编辑
Elasticsearch v7.13.4 的 Linux 存档可以按如下方式下载和安装:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.13.4-linux-x86_64.tar.gz.sha512
#比较下载的.tar.gz存档的 SHA和发布的校验和,应该输出elasticsearch-{version}-linux-x86_64.tar.gz: OK
tar -xzf elasticsearch-7.13.4-linux-x86_64.tar.gz
cd elasticsearch-7.13.4/
#该目录称为 $ES_HOME
elasticsearch默认不允许以root账号运行
#创建用户:sh
useradd nc
#设置密码:
passwd nc
#切换用户:
su nc
更改配置(elasticsearch.yml)
path.data: /home/nc/elasticsearch/data # 数据目录位置
path.logs: /home/nc/elasticsearch/logs # 日志目录位置
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问
bootstrap.system_call_filter: false
我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。
进入elasticsearch的根目录,然后创建:
mkdir data
mkdir logs
从命令行运行 Elasticsearch编辑
Elasticsearch 可以从命令行启动,如下所示:
./bin/elasticsearch
#注意,是在 elasticsearch-{version} 文件夹下($ES_HOME)
启用系统索引的自动创建编辑
一些商业功能会在 Elasticsearch 中自动创建索引。默认情况下,Elasticsearch 配置为允许自动创建索引,不需要额外的步骤。但是,如果你有Elasticsearch禁用自动创建索引,您必须配置 action.auto_create_index
在elasticsearch.yml
允许商业功能创建以下指标:
检查 Elasticsearch 是否正在运行编辑
测试你的Elasticsearch节点通过发送一个HTTP请求的端口上运行9200
上localhost
GET /
成功就有这样的回答
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "7.13.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
配置为守护进程
./bin/elasticsearch -d -p pid
要关闭 Elasticsearch,请终止pid
文件中记录的进程 ID :
pkill - F pid
设置开机启动
systemctl enable elasticsearch
关于systemctl 命令的详细解释https://blog.csdn.net/skh2015java/article/details/94012643
存入数据的数据
自动生成的索引:
单词ID:记录每个单词的单词编号;
单词:对应的单词;
文档频率:代表文档集合中有多少个文档包含某个单词;
倒排列表:包含单词ID及其他必要信息;
DocId:单词出现的文档id;TF:单词在某个文档中出现的次数;POS:单词在文档中出现的位置
以单词“加盟”为例,其单词编号为6,文档频率为3,代表整个文档集合中有三个文档包含这个单词,对应的倒排列表为{(2;1;<4>),(3;1;<7>),(5;1;<5>)},含义是在文档2,3,5出现过这个单词,在每个文档的出现过1次,单词“加盟”在第一个文档的POS是4,即文档的第四个单词是“加盟”,其他的类似。
词典:
基本概念:
索引(indices)--------------------------------Databases 数据库 类型(type)-----------------------------Table 数据表 文档(Document)----------------Row 行 字段(Field)-------------------Columns 列
详细说明:
概念 | 说明 |
---|---|
索引库(indices) | indices是index的复数,代表许多的索引, |
类型(type) | 类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念 |
文档(document) | 存入索引库原始的数据。比如每一条商品信息,就是一个文档 |
字段(field) | 文档中的属性 |
映射配置(mappings) | 字段的数据类型、属性、是否索引、是否存储等特性 |
public enum FieldType {
Text,
Integer,
Long,
Date,
Float,
Double,
Boolean,
Object,
Auto,
Nested,
Ip,
Attachment,
Keyword;
private FieldType() {
}
}