1 ElasticSearch 介绍
Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合 。
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理
解它是如何工作的
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
Elasticsearch 使用 JavaScript Object Notation 或者 JSON 作为文档的序列化格式。 JSON 序列化被大多数编程语言所支持,并且已经成为 NoSQL 领域的标准格式。 它简单、简洁、易于阅读。
考虑下面这个 JSON 文档,它代表了一个 user 对象:
1 2 3 4 5 6 7 8 9 10 11
{ "email": "john@smith.com", "first_name": "John", "last_name": "Smith", "info": { "bio": "Eco-warrior and defender of the weak", "age": 25, "interests": [ "dolphins", "whales" ] }, "join_date": "2018/05/20" }
2 ElasticSearch 安装
必须要有 java 环境
1 2 3 4
[root@ES-100 ~]# java -version openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
1. 下载elasticsearch
下载地址: 下载的rpm包
https://www.elastic.co/cn/downloads/elasticsearch
我的版本是:
elasticsearch-6.5.1
安装:
1
[root@ES-100 software]# rpm -ivh elasticsearch-6.5.1.rpm
目录说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
配置文件目录在/etc/elasticsearch [root@ES-100 elasticsearch]# pwd /etc/elasticsearch [root@ES-100 elasticsearch]# tree . ├── elasticsearch.keystore ├── elasticsearch.yml #es 配置文件 ├── jvm.options # java 的配置文件 ├── log4j2.properties ├── role_mapping.yml ├── roles.yml ├── users └── users_roles 服务启动目录: [root@ES-100 init.d]# /etc/init.d/elasticsearch 插件所在目录 [root@ES-100 plugins]# pwd /usr/share/elasticsearch/plugins
启动es服务
1 2 3 4 5
开启自启 [root@ES-100 init.d]# systemctl enable elasticsearch.service 开启es [root@ES-100 init.d]# service elasticsearch start
测试是否安装成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[root@ES-100 init.d]# curl 'http://localhost:9200/?pretty'; { "name" : "VeXx8SO", "cluster_name" : "elasticsearch", "cluster_uuid" : "RPk51B7bRUuVHHFAkns6Sw", "version" : { "number" : "6.5.1", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "8c58350", "build_date" : "2018-11-16T02:22:42.182257Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
3 ElasticSearch 配置文件介绍
Elasticsearch 已经有了 很好 的默认值, 特别是涉及到性能相关的配置或者选项,其它数据库可能需要调优,但总得来说,Elasticsearch 不需要。 如果你遇到了性能问题,解决方法通常是更好的数据布局或者更多的节点。
3.1 elasticsearch.yml重要文件Elasticsearch 默认启动的集群名字叫 elasticsearch
可以在你的/etc/elasticsearch/elasticsearch.yml 中修改
1
cluster.name: elasticsearch_production
给每个节点设置一个有意义的、清楚的、描述性的名字,同样你可以在elasticsearch.yml 中配置:
1
node.name: elasticsearch_005_data