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


相关文章
|
5月前
Wireshark_win32_2.2.1.0安装步骤详解
下载Wireshark安装包并双击运行,按提示选择语言、同意协议,确保勾选WinPcap驱动。可自定义安装路径和快捷方式,安装完成后建议重启电脑。启动时以管理员身份运行,即可开始抓包分析网络流量。(239字)
|
11月前
|
安全 Serverless API
MCP Server 之旅第 5 站:服务鉴权体系解密
本文深入探讨了MCP协议在授权机制上的演进与函数计算对MCP场景下Auth的支持。文章从MCP协议的授权发展入手,分析了2024-11-05无授权支持到2025-03-26基于OAuth 2.1的授权机制,再到最新Draft中引入Protected Resource Metadata(RFC9728)的变化。同时,详细介绍了函数计算如何通过Bearer认证方式解决MCP场景下的授权问题,帮助开发者降低开发成本并提升安全性。
|
Linux 数据库 iOS开发
CrossOver 25.1.0 for macOS & Linux - 领先的 Wine 解决方案
CrossOver 25.1.0 for macOS & Linux - 领先的 Wine 解决方案
705 0
|
自然语言处理 索引
Elasticsearch之常用DSL语句
mapping是对索引库中文档的约束
508 1
|
Java 开发工具
开发工具系列 之 同一个电脑上安装多个版本的JDK
这篇文章介绍了如何在一台电脑上安装和配置多个版本的JDK,包括从官网下载所需JDK、安装过程、配置环境变量以及如何查看和切换当前使用的JDK版本,并提到了如果IDEA和JDK版本不兼容时的解决方法。
开发工具系列 之 同一个电脑上安装多个版本的JDK
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
13900 4
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
Dubbo Java 应用服务中间件
SpringBoot——SpringBoot集成Dubbo
SpringBoot——SpringBoot集成Dubbo
1833 0
SpringBoot——SpringBoot集成Dubbo
|
消息中间件 存储 监控
RocketMQ Tag 详解!
本文详细介绍了 RocketMQ 中 Tag 的原理及其应用场景。Tag 是一种消息过滤机制,允许生产者在发送消息时指定标签,消费者据此选择性消费。文章通过源码分析展示了 Tag 在消息发送、存储及消费阶段的作用,并提供了完整的示例代码。尽管 Tag 功能简单高效,但也存在单一维度过滤等局限性。适合需要高效、低延迟消息传递的场景,如日志监控、电商系统等。
2073 3
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
797 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
|
存储 数据安全/隐私保护
贴片卡与插拔卡的优缺点
在讨论贴片卡(通常指的是嵌入在设备内部的存储卡,如SIM卡、eMMC等)与插拔卡(如SD卡、microSD卡等,用户可以轻松插入和拔出的存储卡)的优缺点时,我们可以从多个方面进行比较:

热门文章

最新文章