Elasticsearch 学习笔记

Elasticsearch 可以用于快速地储存、搜索和分析海量数据。这里会将其简称为 ES。大部分DSL在 Kibana Dev Tools 中执行。

👉文章列表
Elasticsearch 7 学习笔记 ⏬ 快速上手 Index、Type、Document 安装与启动 Kibana 的使用 下载历史版本 文档唯一性 默认端口与端口设置 创建和删除索引 自定义 mapping 和 settings 设置索引副本数量和分片数量 查看所有索引 数据类型 字符串类型 keyword 、text 数组 添加和更新文档 通过 _bulk 批量添加文档 使用 from 、size 进行分页查询 查询中使用 sort 进行排序 查询结果只展示部分字段 查询结果中展示 _version 字段 使用 ignore_above 限制字符串长度 动态映射 精确搜索/全文搜索示例
客户端 ⏬ Python 客户端 Java TransportClient API 客户端 Java REST Client API 客户端
其他 ⏬ ES 6 快速上手 ES 5 快速上手

Elasticsearch 5 快速上手


目录:


截止2019-06-28,ES 的最新版本是 7.2.0。

可以进入 https://www.elastic.co/cn/downloads/past-releases 如果要下载旧版本的安装包。

安装 Elasticsearch

前置条件是安装 Java。

然后去 ES 官网下载 ES。下载地址

下载后,解压。

启动:

$ cd elasticsearch-5.6.16
$ ./bin/elasticsearch

使用 curl 操作与 ES 交互

ES 默认用 9200 端口提供 HTTP 交互服务。

查看信息

请求:

$ curl http://localhost:9200

# 响应如下
{
  "name" : "E__dOS_",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "uy2dZgwgToGyW34FY2gr6w",
  "version" : {
    "number" : "5.6.16",
    "build_hash" : "3a740d1",
    "build_date" : "2019-03-13T15:33:36.565Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

创建 Index

使用 HTTP PUT 请求创建 Index:

$ curl -X PUT 'localhost:9200/school?pretty'

# 响应如下
{
    "acknowledged":true,
    "shards_acknowledged":true,
    "index":"school"
}

删除 Index

使用 HTTP DELETE 请求删除 Index:

$ curl -X DELETE 'localhost:9200/school?pretty'

# 响应如下
{
  "acknowledged" : true
}

kibana 入门

kibana 是 ES 的前端,通过它可以快速进行数据操作、查询、集群状态查看等。

安装

到官网下载 kibana,解压。

启动

$ cd kibana-6.6.0
$ ./bin/kibana

kibana 默认与本地 ES 的 9200 端口通信。kibana 提供的默认网页服务端口是 5601。

Dev Tools 的简单使用

在 Dev Tools 中可以以非常简洁的方式实现数据操作。

进入 http://localhost:5601 ,选择 Dev tools。或者直接进入 http://localhost:5601/app/kibana#/dev_tools 。

例如创建索引:

PUT school

点击代表执行的绿色按钮后,右侧显示结果:

{
  "acknowledged": true,
  "shards_acknowledged": true,
  "index": "school"
}

增删查改快速入门

以下均在 Kibana 的 Dev Tools 中测试。

创建索引

如索引名是 school。

PUT school

索引不能重复创建,重复创建时会报错。

删除索引

DELETE school

创建索引,同时创建 type

PUT school
{
  "mappings" : {
    "student" : {
      "properties" : {
        "name" : {
          "type" : "keyword"
        }
      }
    }
  }
}

创建索引后,再创建 type

# 步骤1
PUT school

# 步骤2
POST school/student/_mapping
{
  "properties" : {
    "name" : {
      "type" : "keyword"
    }
  }
}

在 ES 5 中,虽然一个index下面,可以有多个type,但是多个type相同名称的字段的类型必须相同,否则创建时会报错。

获取索引下的所有类型

# 请求
GET /school/_mapping

# 响应
{
  "school": {
    "mappings": {
      "student": {
        "properties": {
          "name": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

删除某个索引下的某个 type / mapping

不支持。可以把索引删除,然后重建。


( 本文完 )

文章目录