ElasticSearch-基本操作

2023-11-06

索引操作

对比关系型数据库,创建索引就等同于创建数据库

创建索引

使用PUT请求创建索引,应为put具有幂等性,如果重复添加索引,会返回错误消息

http://192.168.80.10:9200/shopping

image-20210710084045176

  • acknowledged:响应结果
  • shards_acknowledged:分片结果
  • index:索引名称

查看索引

使用GET请求查看索引,_cat 表示查看的意思,indices 表示索引,是查看当前 ES服务器中的所有索引

http://192.168.80.10:9200/_cat/indices?v

image-20210710084327249

表头 含义
health 当前服务器健康状态: green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status 索引打开、关闭状态
index 索引名
uuid 索引统一编号
pri 主分片数量
rep 副本数量
docs.count 文档数量
docs.deleted 文档删除状态(逻辑删除)
store.size 主分片和副分片整体占空间大小
pri.store.size 主分片占空间大小

使用GET,指定索引名称,查看单个索引

http://192.168.80.10:9200/shopping

image-20210710084817905

  • shopping:索引名
  • aliases:别名
  • mappings:映射
  • settings:设置
  • index:设置 - 索引
  • creation_date:设置 - 索引 - 创建时间
  • number_of_shards:设置 - 索引 - 主分片数量
  • number_of_replicas:设置 - 索引 - 副分片数量
  • uuid:设置 - 索引 - 唯一标识
  • version:设置 - 索引 - 版本
  • provided_name:设置 - 索引 - 名称

删除索引

使用DELETE,指定索引名称,删除单个索引

http://192.168.80.10:9200/shopping

image-20210710085207251

文档操作

文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式

创建文档

使用POST,指定索引名称,_doc,发送请求的方式必须为 POST,不能是 PUT,否则会发生错误,如果没有指定数据的唯一性标识ID,默认ES会随机生成,可以通过插入文档的时候,指定唯一性标识,如果增加数据时明确数据主键,那么请求方式也可以为 PUT

http://192.168.80.10:9200/shopping/_doc/1(指定唯一标识)

image-20210710085429478

  • _index:索引
  • type:类型-文档
  • id:唯一标识
  • _version:版本
  • result:结果
  • _shards:分片
  • total:分片 - 总数
  • successful:分片 - 成功
  • failed:分片 - 失败

查看文档

ES 服务器发 GET 请求 ,指定文档的唯一性标识,查看文档信息

http://192.168.80.10:9200/shopping/_doc/1

image-20210710090249131

  • _index:索引
  • type:文档类型
  • found:查询结果
  • _source:文档源信息

修改文档

和新增文档一样,如果请求体变化,会将原有的数据内容覆盖

http://192.168.80.10:9200/shopping/_doc/1
{
 "title":"华为手机",
 "category":"华为",
 "price":3999.00
}

image-20210710090540674

  • _version:版本
  • result:结果

修改字段

修改数据时,也可以只修改某一给条数据的局部信息,发送POST请求

http://192.168.80.10:9200/shopping/_doc/1
{
    "doc": {
        "price": 5999.00
    }
}

删除文档

向 ES 服务器发 DELETE 请求,删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)

http://192.168.80.10:9200/shopping/_doc/1

image-20210710091713123

  • _version:对数据的操作,都会更新版本

  • result:结果deleted表示数据被标记为删除

条件删除文档

一般删除数据都是根据文档的唯一性标识进行删除,实际操作时,也可以根据条件对多条数据进行删除_delete_by_query

http://192.168.80.10:9200/shopping/_doc/_delete_by_query
{
    "query": {
        "match": {
            "price": 4000.00
        }
    }
}

image-20210710115923772

  • took:耗时
  • timed_out:是否超时
  • total:总数
  • deleted:删除数量

映射操作

有了索引库,等于有了数据库中的 database。而索引库(index)中的映射,类似于数据库(database)中的表结构(table)。 创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一样,需要知道这个类型下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。

映射数据说明

字段名:任意填写,下面指定许多属性,例如:title、subtitle、images、price

type:类型,Elasticsearch 中支持的数据类型非常丰富,如

  • String 类型:text可分词,keyword不可分词,数据会作为完整字段进行匹配
  • Numerical:数值类型,分两类:基本数据类型:long、integer、short、byte、double、float、half_float,浮点数的高精度类型:scaled_float
  • Date:日期类型
  • Array:数组类型
  • Object:对象

index:是否索引,默认为 true,也就是说不进行任何配置,所有字段都会被索引

  • true:字段会被索引,则可以用来进行搜索
  • false:字段不会被索引,不能用来搜索

store:是否将数据进行独立存储,默认为 false

  • 原始的文本会存储在_source里面,默认情况下其他提取出来的字段都不是独立存储 的,是从_source 里面提取出来的。当然也可以独立的存储某个字段,只要设置 "store": true即可,获取独立存储的字段要比从_source 中解析快得多,但是也会占用 更多的空间

analyzer:分词器,ik_max_word 即使用 ik 分词器

创建映射

向 ES 服务器发 PUT 请求

http://192.168.80.10:9200/student/_mapping
{
    "properties": {
        "name": {
            "type": "text",
            "index": true
        },
        "sex": {
            "type": "text",
            "index": false
        },
        "age": {
            "type": "long",
            "index": false
        }
    }
}

image-20210710120525557

查看映射

向 ES 服务器发 GET 请求

http://192.168.80.10:9200/student/_mapping

image-20210710121148591

索引映射关联

向 ES 服务器发 PUT 请求

http://192.168.80.10:9200/student
{
    "settings": {},
    "mappings": {
        "properties": {
            "name": {
                "type": "text",
                "index": true
            },
            "sex": {
                "type": "text",
                "index": false
            },
            "age": {
                "type": "long",
                "index": false
            }
        }
    }
}

image-20210710121542628

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch-基本操作 的相关文章

随机推荐

  • 漫谈设计模式之建造者模式(Builder)

    建造者模式 Builder 又叫生成器模式 属于对象创建型模式 建造者模式的目的是要将一个复杂对象的构建与它的表示分离 使得同样的构建过程可以创建不同的表示 产品 说得通俗点就是一个产品 表示 的构建 生产 过程是一样的 但是同样的生产过程
  • hdu 1465不容易系列之一

    http acm hdu edu cn showproblem php pid 1465 这是一道排错问题 用排错公式 排错公式推导 当n个编号元素放在n个编号位置 元素编号与位置编号各不对应的方法数用D n 表示 那么D n 1 就表示n
  • FISCO BCOS 2.0原理解析: 群组架构的设计

    为了方便企业 开发者更深入理解FISCO BCOS 2 0诸多新特性 更快速地运用FISCO BCOS搭建联盟链应用 我们启动了FISCO BCOS 2 0系列剖析的计划 在后续的推送中 我们将陆续推出 FISCO BCOS 2 0原理解析
  • LeetCode 260. 只出现一次的数字 III

    题目链接 https leetcode cn problems single number iii 思路如下 从头到尾依次异或数组中的每一个数字 那么最终得到的结果就是两个只出现一次的数字的异或结果 因为其他数字都出现了两次 在异或中全部抵
  • javascript求任意一组数的平均值

    代码 function getAvg 任意一组数求平均值 var sum 0 len arguments length i arguments是js函数中内置的类数组 它能像数组一样使用下标进行访问元素 for i 0 i
  • vue怎么改logo_vue项目添加网页logo

    网上关于为vue项目添加网页logo的文章很多 步骤很简单 但是博主还是踩了坑 特此记录一下 先上效果 1 首先 要为网页添加logo我们需要一张ico格式的图标 可以用网上的在线转换工具 将 jpg png 格式的图片转为 ico 格式
  • 防抖与节流函数

    文章目录 前言 节流函数代码 防抖函数代码 前言 防抖与节流是日常开发中常用的两个函数 目的都在于控制事件触发频率降低性能损耗和代码错误 节流 点击事件即开始计时 计时时间内无论触发多少次事件 都只执行触发计时的那个事件 防抖 点击事件即开
  • Python: SQLAlchemy 增、删、改、查

    目录 一 完整代码 1 1 代码 1 2 运行结果 二 增删改查 2 1 增加一行记录 2 2 修改一行记录 2 3 查询一行记录 2 4 删除一行记录 一 完整代码 1 1 代码 import uuid import datetime i
  • 一个关于缓存的问题

    网上查了一下 关于生命周期的话题 如果是类的成员变量 则其声明周期贯穿整个其对象的生命周期 如果是方法内的变量 局部变量 则仅仅在该方法内有效 出了方法体则无效 失去意义 static是修饰静态代码块或者成员变量或者方法的 其方法或者代码块
  • 介绍一个十分牛逼的GitHub看代码神器,零基础必学会的操作。

    给大家介绍一个非常实用的工具 有了它 我们可以在几秒之内用 VS Code 打开 GitHub 上的任意一个 Repo 无需 Clone 速度飞快 用法也十分简单而且好记 下面给大家介绍下 介绍 比如这里是 Scrapy 的仓库 https
  • 【線段樹】Mayor's posters

    Description The citizens of Bytetown AB could not stand that the candidates in the mayoral election campaign have been p
  • 如何使用pandas进行excel文件读取(二)

    如何使用pandas进行excel指定行列读取 文章目录 前言 一 pandas是什么 二 loc和iloc方法 1 引入库 2 读入数据 3 读取指定数据 总结 前言 前面说到了如何用pandas对excel文件进行读取 但是那种读取只适
  • 根据计算两点之间的距离

    function getDistance lat1 lng1 lat2 lng2 earthRadius 6367000 lat1 lat1 pi 180 lng1 lng1 pi 180 lat2 lat2 pi 180 lng2 lng
  • 函数重写&运算符重载&类方法和静态方法&对象其他概念

    重要思想 python中万物皆对象 1 函数重写 有了的前提下改写 重写 override v 以权力 否决 推翻 在继承的前提下 如果在子类中重新实现了父类中的函数 才能进行函数重写 自定义函数的重写 1 什么时候需要重写函数 如果一个类
  • 静态Web服务器-返回指定页面数据

    学习目标 能够写出组装指定页面数据的响应报文 1 静态Web服务器的问题 目前的Web服务器 不管用户访问什么页面 返回的都是固定页面的数据 接下来需要根据用户的请求返回指定页面的数据 返回指定页面数据的实现步骤 获取用户请求资源的路径 根
  • Nginx 使用 proxy_cookie_path 解决反向代理 cookie 丢失导致无法登录等问题

    语法 参考nginx官方文档 语法 proxy cookie path off proxy cookie path path replacement 默认 proxy cookie path off 位置 http server locat
  • 学习前端必要的PS基础

    学习前端必要的PS基础 为什么我们要学习PS 学习PS需要知道的基本操作 为什么我们要学习PS 因为我们需要知道设计稿里面的颜色 字体大小 背景颜色 一些元素的宽高距离等等信息 学习PS需要知道的基本操作 点击菜单栏 窗口 信息 字符 图层
  • 新书上市

    本书从各种角度来思考同一个数学问题 一共 16 个问题 并给出不同的解答 这 16 个问题包括 三等分蛋糕 设计时钟的表盘 求出地球的直径 列举违背规律的东西 画出心形图像 列举答案为 1 的问题 三等分角 用大定理证明一些无聊的问题 求出
  • html标签类前端笔记

    HTML5 布局类标签 HTML是具有语义化的语言 针对网页的布局 有一类标签代表各种意义的 布局盒子 所有的布局类标签都主要用来构建页面的内容区域 是双标签类型 是双标签类型 默认显示为块状元素 通用的布局标签 div 语义 无明确的含义
  • ElasticSearch-基本操作

    目录 索引操作 创建索引 查看索引 删除索引 文档操作 创建文档 查看文档 修改文档 修改字段 删除文档 条件删除文档 映射操作 映射数据说明 创建映射 查看映射 索引映射关联 索引操作 对比关系型数据库 创建索引就等同于创建数据库 创建索