(七):ElasticSearch客户端操作

ElasticSearch服务的客户端,有以下三种方式:

  ·elasticsearch-head插件

  ·elasticsearch提供的Restful接口直接访问

  ·elasticsearch提供的API进行访问

1、elasticsearch-head插件

  启动插件后,访问 http://localhost:9100/ 地址,详情如下:

1.1、概览信息

  概览信息可以查询到建立的索引。

1.2、索引

  点击索引页,可以新建索引,同时可以查看建立的索引信息,包括该索引下的文档数。

0

1.3、浏览数据

  浏览数据页,可以根据索引及类型查看数据,详情如下:

0

1.4、基本查询和复合查询

  基本查询和复合查询在学习完 domain-specific language 领域特定语言,即DSL中会做详细介绍。

2、访问Restful接口

2.1、索引操作

2.1.1、创建索引 index

PUT /索引名
POST /索引名

1.1、创建映射及索引

  请求体内容:

{
  "mappings": {
      "properties": {
        "id": {
          "type": "long",
          "store": true
        },
        "title": {
          "type": "text",
          "store": true,
          "analyzer":"standard"
        },
        "content": {
          "type": "text",
          "store": true,
          "analyzer":"standard"
        } 
      }
  }
}

  详情如下:

0

  通过head插件查询,索引已经建成功。

0

1.2、先创建索引再创建映射 mapping

  使用put方法创建一个索引,无任何请求信息,详情如下:

0

  设置mapping信息,详情如下:

{
    "article": {
            "properties": {
                "id":{
                    "type":"long",
                    "store":true
                },
                "title":{
                    "type":"text",
                    "store":true,
                    "analyzer":"standard"
                },
                "content":{
                    "type":"text",
                    "store":true,
                    "analyzer":"standard"
                }
            }
        }
  }

  postman请求详情如下:

0

  head插件查看如下:

0

2.1.2、查看索引

# 查看所有索引信息
GET /*

  详情如下:

0

# 查看指定索引的索引信息
GET /索引名

  详情如下:

0

2.1.3、更新索引

DELETE /索引名称

  详情如下:

0

2.2、文档操作

2.2.1、post与put方式的区别

提交方式

描述

PUT

提交的id如果不存在就是新增操作,如果存在就是更新操作,id不能为空

POST

如果不提供id会自动生成一个id,如果id存在就更新,如果id不存在就新增

2.2.2、创建文档

PUT|POST /索引名称/类型名/编号

  请求体内容:

{
    "id":1,
    "title":"ElasticSearch 是一个基于 Lucene 的搜索服务器",
    "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。"
}

  详情如下:

0

  使用head查看结果:

0

  返回字段含义:

字段

含义

_index

索引名称

_type

类型名称

_id

记录id

_version

版本号

_seq_no

并发控制字段,每次更新都会+1,用来实现乐观锁

_primary_term

同上,主分片重新分配,如重启,就会发生变化

found

是否找到结果标识

_source

真正的数据内容

2.2.3、更新文档

  使用 put方式 更新,详情如下:

0

2.2.4、查询文档

4.1、根据id查询

0

4.2、根据querystring查询

  query_string的搜索方式,搜索之前对搜索的关键词分词。

{
    "query": {
        "query_string": {
            "default_field": "title",
            "query": "搜索服务器"
        }
    }
}

2.2.5、删除文档

0

3、Kibana的Dev Tools

  Kibana的安装:(三):Kibana安装

  在Kibana的管理台中,可通过Dev Tools对数据进行检索、过滤等操作。

0

3.1、索引操作

# 创建索引
PUT /user
# 查询索引
GET /user
# 删除索引
DELETE /user

3.1.1、创建索引

0

3.2.2、查看索引

2.1、管理台查看

  查看创建的索引,在Kibana管理台 Management -> StackManagement -> Index Management 中查看刚创建的索引。

0

2.2、命令查看

0

3.2.3、删除索引

0

  再次查看索引,返回404,索引未找到,表示已经被删除。

0

3.2、文档操作

3.2.1、创建文档

# 创建文档,type = _doc
PUT /user/_doc/1
{
  "name":"李四",
  "age":28,
  "city":"杭州"
}
# type = _doc
POST /user/_create/2
{
  "name":"王五",
  "age":26,
  "city":"上海"
}
# type = userinfo
POST /user/userinfo/3
{
  "name":"赵六",
  "age":35,
  "city":"北京"
}

  详情如下:

0
0
 
0

  7.x的版本的type默认为_doc,废弃了类型type,去掉type是为了提高ES处理数据的效率。

  Elasticsearc基于Lucene开发的搜索引擎,在ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。

  两个不同type下的两个name,在ES中同一个索引下其实被认为是同一个filed,必须在两个不同的type中定义相同的filed映射。否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。

3.2.2、查看文档

# 查看文档
GET /user/_doc/1

3.2.3、更新文档

# 更新文档
POST /user/_doc/1
{
  "name":"李四",
  "age":29,
  "city":"杭州"
}
# 查看更新后的文档
GET /user/_doc/1
 
0
 
0

3.2.4、删除文档

# 删除文档
DELETE /user/_doc/1

 
posted @ 2024-01-18 16:36  无虑的小猪  阅读(169)  评论(0编辑  收藏  举报