elastic search--01

# 初识es

## es是什么?

es是基于Apache Lucene的开源分布式(全文)搜索引擎,,提供简单的RESTful API来隐藏Lucene的复杂性。

es除了全文搜索引擎之外,还可以这样描述它:

- 分布式的实时文件存储,每个字段都被索引并可被搜索;
- 分布式的实时分析搜索引擎;
- 可以扩展到成百上千台服务器,处理PB级结构化或非结构化数据。

## es的下载与安装

### java for windows

es对于java jdk的版本有需求,必须是java1.8及以上版本。

安装步骤参考:[https://www.cnblogs.com/Neeo/articles/10368280.html](https://www.cnblogs.com/Neeo/articles/10368280.html)

### es for windows

es开箱即用,也就是解压即可使用,安装参考[https://www.cnblogs.com/Neeo/articles/10371306.html](https://www.cnblogs.com/Neeo/articles/10371306.html)

### kibana for windows

Kibana是一个为ElasticSearch 提供的数据分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

安装参考:[https://www.cnblogs.com/Neeo/articles/10371213.html](https://www.cnblogs.com/Neeo/articles/10371213.html)

# es的快速上手

### es的数据组织

- 逻辑:索引>l类型> 文档
- 与关系型数据库对比理解

- 文档

  - 文档的特性:自我包含,层次型、结构灵活、无模式
  - 类型:在es6.x版本开始,一个索引下面只能有一个类型,类型是是文档的容器,并且,类型记录了字段和值的映射关系。
  - 索引,索引是映射类型的容器,elasticsearch中的索引是一个非常大的文档集合。索引存储了映射类型的字段和其他设置。然后它们被存储到了各个分片上了。


- 物理:节点,分片

  - 节点,一个集群至少有一个节点,节点内可以有多个索引。在创建索引时,默认创建5个主分片,每个主分片搭配一个复制分片。
  - 分片:文档存储在各个分片上,一个分片也是一个Lucene索引。
  - 倒排索引,倒排索引是一个包含`不重复`词条的文档,我们称该文档为倒排文档。详情[参考](https://baike.baidu.com/item/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95/11001569?fr=aladdin)
  - es的索引和Lucene的索引对比
    - es的索引是由多个分片组成,而每个分片则是一个Lucene索引。
    - 一个Lucene索引能存储不超过21亿篇文档,或者不超过2740亿个唯一词条。

## 基本操作

- 简单操作

```
PUT s18/doc/1
{
  "name":"大刀"
}
PUT s18/doc/2
{
  "name":"鹏程"
}
PUT s18/doc/3
{
  "name":"laowang"
}
```
上例中,我们添加3篇文档,首先检查索引`s18`是否存在,不存在先创建,存在则添加(或更新)文档。

```
GET s18/doc/1 # 查看指定文档
GET s18/doc/_search # 查看所有文档
GET s18/doc/_search?q=name:laowang # 按条件查询
```

上例是简单的查询语句。

其他查询:

```
  GET s18/_mapping # 查看索引的映射类型
  GET s18/_settings # 查看索引的设置信息
  GET s18 # 查看索引的详情
```

**删除**

```
  DELETE s18/doc/1 # 删除指定文档
  DELETE s18 # 删除索引
```

原文地址:https://www.cnblogs.com/kevin-red-heart/p/10896678.html