es-DSL语句基础操作(Elasticseach)

简介: es-DSL语句基础操作(Elasticseach)

 目录

索引库操作

索引库属性解释

DSL创建索引库

DSL修改索引库

DSL查看索引库

DSL删除索引库

文档操作

DSL新增文档

DSL查看文档

DSL删除文档

DSL修改文档


索引库操作

索引库属性解释

mappings:是对索引库中文档的约束;常见属性如下:

  • type:数据类型
  • index:是否索引
  • analyzer:分词器
  • properties:子字段

type: 字段数据类型,常见的类型有:

  • 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
  • 数值:long、integer、short、byte、double、float
  • 布尔:boolean
  • 日期:date
  • 对象:object

index:是否创建索引,默认为true(需要根据某个字段查询,默认为true;不需要查询当前字段设置为false)

analyzer:使用哪种分词器(只有text值需要分词,其他基本不需要要)

properties:该字段的子字段

DSL创建索引库

ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。

语法

PUT /索引库名称
{
  "mappings": {
    "properties": {
      "字段名1": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "字段名2": {
        "type": "keyword",
        "index": "false"
      },
      "字段名3": {
        "properties": {
          "子字段": {
            "type": "keyword"
          }
        }
      },
      // ...省略
    }
  }
}

image.gif

示例

PUT /user
{
  "mappings": {
    "properties":{
      "info": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "name": {
        "type": "keyword",
      },
      "email": {
        "type": "keyword",
        "index": false
      },
      "address": {
        "type": "object",
        "properties": {
          "province": {
            "type": "keyword"
          },
          "city": {
            "type": "keyword"
          },
          "district": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

image.gif

DSL修改索引库

修改索引库和mapping一旦创建无法修改,但是可以添加新的字段。

语法

PUT /索引库名/_mapping
{
  "properties": {
    "新字段名": {
      "type": "integer"
    }
  }
}

image.gif

示例

PUT /user/_mapping
{
  "properties": {
    "age": {
      "type": "integer"
    }
  }
}

image.gif

DSL查看索引库

语法

GET /索引库名

image.gif

示例

GET /user

image.gif

DSL删除索引库

语法

DELETE /索引库名

image.gif

示例

DELETE /user

image.gif

文档操作

DSL新增文档

语法

POST /索引库名/_doc/文档id
{
  "字段1": "字段值1",
  "字段2": "字段值2",
  "字段3": {
    "子属性1": "值3",
    "子属性2": "值4"
  },
  // 省略
}

image.gif

示例

POST /user/_doc/1
{
  "info": "一个小可爱呀",
  "email": "xka@xiaokeai.cn",
  "addrees": {
    "province": "广东省",
    "city": "广州市",
    "district": "天河区"
  }
}

image.gif

DSL查看文档

语法

GET /索引库名/_doc/文档id

image.gif

示例

GET /user/_doc/1

image.gif

DSL删除文档

语法

DELETE /索引库名/_doc/文档id

image.gif

示例

DELETE /user/_doc/1

image.gif

DSL修改文档

方法一:全量修改,会删除旧文档,添加新文档(输入文档内所有的值)

语法

PUT /索引库名/_doc/文档id
{
  "字段1": "值1",
  "字段2": "值2",
  // ... 省略
}

image.gif

示例

PUT /user/_doc/1
{
  "info": "一个小小可爱呀",
  "email": "xxka@xiaokeai.cn",
  "addrees": {
    "province": "河南省",
    "city": "郑州",
    "district": "中原区"
  }
}

image.gif

方式二:增量修改,修改指定字段值

语法

POST /索引库名/_update/文档id
{
  "doc": {
    "字段名": "新的值",
    "字段名2": "新的值2",
    // ... 省略
  }
}

image.gif

示例

POST /user/_update/文档id
{
  "doc": {
    "email": "kljj@kailangjiaojiao.cn"
  }
}

image.gif


相关文章
|
10月前
|
JSON 自然语言处理 数据格式
DSL语法
DSL语法
100 0
|
2月前
|
Python
【Python操作基础】——语句书写规范
【Python操作基础】——语句书写规范
|
1月前
|
前端开发 JavaScript Java
【前端技术】 ES6 介绍及常用语法说明
【前端技术】 ES6 介绍及常用语法说明
20 4
|
8月前
|
前端开发 JavaScript 编译器
|
8月前
|
存储 JavaScript 前端开发
|
11月前
|
前端开发
es6 语法简单使用2
es6 语法简单使用
48 0
|
11月前
|
网络架构
es6 语法简单使用1
es6 语法简单使用
58 0
|
SQL JSON Java
es应用笔记2-sql查询
es应用笔记2-sql查询
211 0
es应用笔记2-sql查询
SQL语言基础操作之逻辑语句
上期回顾 上次的基础操作中我们过了一遍sql语言表操作中最基本的所有命令,包括了表的创建、数据的插入和查询、重复数据的去除等操作。 本期我们就要开始引入逻辑相关的操作命令了:
SQL语言基础操作之逻辑语句
|
开发者 Docker 容器
DSL 语法介绍|学习笔记
快速学习 DSL 语法介绍
382 0
DSL 语法介绍|学习笔记