Elasticsearch学习笔记
时间: 2023-12-23 11:05:25 浏览: 90
1. 什么是Elasticsearch?
Elasticsearch是一个开源的搜索引擎,它提供了一个分布式、多租户的全文搜索引擎,具有实时搜索、分布式搜索、数据可视化等功能。Elasticsearch是基于Lucene库开发的,它使用JSON格式进行数据交互和配置,提供了RESTful API,可以通过HTTP协议进行访问和操作。
2. Elasticsearch的核心概念
(1)节点(Node):Elasticsearch集群中的每个服务器都是一个节点,每个节点都是一个独立的进程,可以独立地运行、索引和搜索数据。
(2)索引(Index):Elasticsearch中的索引类似于数据库中的表,它是存储数据的地方,每个索引可以包含多个类型,每个类型又包含多个文档。
(3)文档(Document):Elasticsearch中的文档类似于数据库中的记录,它是最小的数据单元,用JSON格式表示,包含了实际的数据和元数据。
(4)分片(Shard):为了支持大数据量的存储和查询,Elasticsearch将每个索引分成多个分片,每个分片都是独立的Lucene索引。
(5)副本(Replica):为了提高搜索的性能和可用性,Elasticsearch可以将每个分片的副本分配到其他节点上,每个分片可以有多个副本。
3. Elasticsearch的安装与配置
(1)安装Java运行环境:Elasticsearch是基于Java开发的,因此需要先安装Java运行环境。
(2)下载Elasticsearch:在Elasticsearch官网上下载最新版本的Elasticsearch。
(3)安装Elasticsearch:解压下载的文件,将文件夹拷贝到指定的目录中。
(4)启动Elasticsearch:运行bin目录下的elasticsearch脚本,启动Elasticsearch。
(5)访问Elasticsearch:通过http://localhost:9200访问Elasticsearch,如果能够正常访问,则表示安装和配置成功。
4. Elasticsearch的基本操作
(1)创建索引:使用PUT方法创建一个索引,如:
```
PUT /my_index
```
(2)添加文档:使用POST方法向索引中添加文档,如:
```
POST /my_index/my_type
{
"title": "Elasticsearch",
"author": "John",
"content": "This is a test document."
}
```
(3)查询文档:使用GET方法查询文档,如:
```
GET /my_index/my_type/1
```
(4)搜索文档:使用POST方法搜索文档,如:
```
POST /my_index/my_type/_search
{
"query": {
"match": {
"title": "Elasticsearch"
}
}
}
```
(5)删除文档:使用DELETE方法删除文档,如:
```
DELETE /my_index/my_type/1
```
(6)删除索引:使用DELETE方法删除索引,如:
```
DELETE /my_index
```
5. Elasticsearch的高级操作
(1)分片和副本:可以通过设置分片和副本的数量来控制数据的存储和查询性能。
(2)映射和分析器:可以通过映射和分析器来控制数据的索引和搜索行为。
(3)聚合和数据可视化:可以使用聚合和数据可视化工具来分析和展示数据。
(4)安全和权限:可以通过安全和权限控制来保护数据的安全性和隐私性。
(5)插件和扩展:可以使用各种插件和扩展来扩展Elasticsearch的功能和性能。
阅读全文