Elasticsearch学习笔记(2)

索引库操作

在Elasticsearch中,Mapping是定义文档字段及其属性的重要机制。

Mapping映射属性

type:字段数据类型

1、字符串:

  • text:可分词的文本,适用于需要全文检索的情况。
  • keyword:用于存储精确值,如品牌、国家名、IP地址等,不进行分词。

2、数值:

  • long:64位整数。
  • integer:32位整数。
  • short:16位整数。
  • byte:8位整数。
  • double:双精度浮点数。
  • float:单精度浮点数。

3、布尔:boolean:只接受true或false。

4、日期:date:用于存储日期和时间,支持多种格式。

5、对象:object:用于嵌套结构,可以包含多个字段。

index:

指定该字段是否创建索引,默认为true。如果设置为false,该字段将不会被索引,无法用于检索。

analyzer:

指定字段使用的分词器,影响如何处理文本数据。例如,常用的分词器有standard、whitespace、simple等。

properties:

定义该字段的子字段,用于更复杂的结构,例如嵌套对象。

以下是一个示例JSON文档,

{"age": 30,"weight": 70.5,"isMarried": true,"info": "这是一段关于个人信息的文本,需要进行分词处理。","email": "example@example.com","score": 95.5,"name": {"firstName": "John","lastName": "Doe"}
}

对应的每个字段映射(Mapping): 

索引库的CRUD 

在Elasticsearch中,CRUD(创建、读取、更新和删除)操作可以通过RESTful API进行。 

创建索引

PUT /my_index
{"settings": {"number_of_shards": 1,"number_of_replicas": 1},"mappings": {"properties": {"age": { "type": "integer" },"weight": { "type": "float" },"isMarried": { "type": "boolean" },"info": { "type": "text" },"email": { "type": "keyword" },"score": { "type": "float" },"name": {"properties": {"firstName": { "type": "keyword" },"lastName": { "type": "keyword" }}}}}
}

创建文档 

POST /my_index/_doc/1
{"age": 30,"weight": 70.5,"isMarried": true,"info": "这是一段关于个人信息的文本,需要进行分词处理。","email": "example@example.com","score": 95.5,"name": {"firstName": "John","lastName": "Doe"}
}

读取文档

GET /my_index/_doc/1

更新文档

POST /my_index/_doc/1/_update
{"doc": {"weight": 72.0}
}

删除文档

DELETE /my_index/_doc/1

删除索引

DELETE /my_index

总结

  • 创建索引: 使用 PUT 请求来定义索引及其映射。
  • 创建文档: 使用 POST 请求将数据添加到索引。
  • 读取文档: 使用 GET 请求获取特定文档。
  • 更新文档: 使用 POST 加上 _update 操作来修改现有文档。
  • 删除文档: 使用 DELETE 请求删除指定文档。
  • 删除索引: 使用 DELETE 请求删除整个索引。 

文档操作

在Elasticsearch中,可以通过RESTful API对文档进行增、删、改、查等操作。

添加文档(创建)

使用 POST 请求向索引中添加新的文档。每个文档都是一个JSON对象。

POST /my_index/_doc/1
{"age": 30,"weight": 70.5,"isMarried": true,"info": "这是一段关于个人信息的文本。","email": "example@example.com","score": 95.5,"name": {"firstName": "John","lastName": "Doe"}
}

读取文档(查询)

使用 GET 请求读取特定的文档。

GET /my_index/_doc/1

也可以使用搜索功能查找多个文档:

GET /my_index/_search
{"query": {"match": {"name.firstName": "John"}}
}

修改文档

在Elasticsearch中,修改文档可以通过全量修改和局部修改两种方式进行:

1. 全量修改

全量修改会直接覆盖原来的文档内容。使用 PUT 请求来实现。

PUT /my_index/_doc/1
{"age": 30,"weight": 70.5,"isMarried": true,"info": "这是一段关于个人信息的文本。","email": "example@example.com","score": 95.5,"name": {"firstName": "John","lastName": "Doe"}
}

2. 局部修改

局部修改只会修改文档中的部分字段,而不影响其他字段。使用 POST 请求加上 _update 操作来实现。

POST /my_index/_doc/1/_update
{"doc": {"weight": 72.0,"isMarried": false}
}

在这个例子中,只有 weight 和 isMarried 字段被更新,其他字段保持不变。

总结

  • 全量修改: 使用 PUT 请求,覆盖整个文档。
  • 局部修改: 使用 POST 请求加 _update,仅修改指定的字段。

删除文档

使用 DELETE 请求删除特定的文档。

DELETE /my_index/_doc/1

批量操作

Elasticsearch支持批量操作,可以一次性添加、更新或删除多个文档。使用 _bulk API。

POST /_bulk
{ "index": { "_index": "my_index", "_id": "2" } }
{ "age": 25, "weight": 60.0, "isMarried": false, "info": "另一段个人信息。", "email": "user2@example.com", "score": 88.0, "name": { "firstName": "Jane", "lastName": "Smith" } }
{ "update": { "_index": "my_index", "_id": "1" } }
{ "doc": { "score": 97.0 } }
{ "delete": { "_index": "my_index", "_id": "3" } }

总结

在Elasticsearch中,文档操作主要包括以下几种:

创建文档:

  • 请求方式:POST
  • 请求格式:/{索引库名}/_doc/文档id
  • 示例:POST /my_index/_doc/1 { "field": "value" }

查询文档:

  • 请求方式:GET
  • 请求格式:/{索引库名}/_doc/文档id
  • 示例:GET /my_index/_doc/1

删除文档:

  • 请求方式:DELETE
  • 请求格式:/{索引库名}/_doc/文档id
  • 示例:DELETE /my_index/_doc/1

修改文档:

全量修改:

  • 请求方式:PUT
  • 请求格式:/{索引库名}/_doc/文档id
  • 示例:PUT /my_index/_doc/1 { "field": "new_value" }

局部修改:

  • 请求方式:POST
  • 请求格式:/{索引库名}/_update/文档id
  • 示例:POST /my_index/_doc/1/_update { "doc": { "field": "updated_value" } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549529.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

找不到msvcp110.dll怎么办,总结6种解决msvcp110.dll的方法

在电脑使用过程中,我们可能会遇到各种各样的问题,其中之一就是系统提示某个文件丢失。msvcp110.dll丢失是一个比较常见的问题,它可能导致某些程序无法正常运行。那么,如何解决这个问题呢?本文将详细介绍6种修复msvcp11…

Yolov10环境配置

参考文章:1.YOLOv10超详细环境搭建以及模型训练(GPU版本)-CSDN博客 2.Windows下安装pytorch教程(下载.whl的方式)_pytorch whl-CSDN博客 安装步骤和文件夹顺序一样 1.安装CUDA和cuDNN 1.1安装CUDA 1.1.1查看当前你的电脑显卡支持的最高CUD…

【微服务】springboot 实现动态修改接口返回值

目录 一、前言 二、动态修改接口返回结果实现方案总结 2.1 使用反射动态修改返回结果参数 2.1.1 认识反射 2.1.2 反射的作用 2.1.3 反射相关的类 2.1.4 反射实现接口参数动态修改实现思路 2.2 使用ControllerAdvice 注解动态修改返回结果参数​​​​​​​ 2.2.1 注解…

构造性神经组合优化的学习编码需要反悔

文章目录 Abstract1 Introduction2 Related Work用于构造性启发式的深度强化学习当前用于更好编码的方法3 LCH-Regret学习构造性启发式反悔机制LCH - Regret 机制的 L R L_R LR​Abstract 深度强化学习的神经组合优化中,学习构造性启发式(LCH)通过快速的自回归解构建过程实…

【ChromeDriver安装】爬虫必备

以下是安装和配置 chromedriver 的步骤: 1. 确认 Chrome 浏览器版本 打开 Chrome 浏览器,点击右上角的菜单按钮(三个点),选择“帮助” > “关于 Google Chrome”。 2. 下载 Chromedriver 根据你的 Chrome 版本&…

原宝,四周年快乐!

原神,公测于2020年9月28日开启。 现在已经是第4个年头了,7个国家已经开放了6个,来到了火之国。其实自从2022年继续开放游戏版号以来,好品质的二次元游戏、三端游戏也是层出不穷。无论是立绘,建模都有非常优秀的作品。…

Profinet转Modbus485RTU网关同步采集高速响应无需编程轻松组网

Profinet转Modbus485RTU网关同步采集高速响应无需编程轻松组网https://item.taobao.com/item.htm?ftt&id778760672600PROFINET 串口网关 PROFINET 转 RS485 MS-A1-30X1 作为 Profinet 通信的通讯单元进行动作。可通过 Profinet 通信,将 MS-A1-30X1 单元的当前值…

04_OpenCV图片缩放

import cv2 import matplotlib.pyplot as plt # Python 的 2D绘图库# 读入原图片 img cv2.imread(libarary.JPG) # 打印出图片尺寸 print(img.shape) # 将图片高和宽分别赋值给x,y x, y img.shape[0:2]# 显示原图 #cv.imshow(OriginalPicture, img)# 缩放到原来的…

企业级版本管理工具(1)----Git

目录 1.Git是什么 2.Git的安装和使用 在Ubuntu下安装命令如下: 使用git --version查看已安装git的版本: 使用git init初始化仓库: 使用tree .git列出目录: 使用git config命令设置姓名和邮箱: 加入--global选项…

NLP:BERT的介绍

1. BERT 1.1 Transformer Transformer架构是一种基于自注意力机制(self-attention)的神经网络架构,它代替了以前流行的循环神经网络和长短期记忆网络,已经应用到多个自然语言处理方向。   Transformer架构由两个主要部分组成:编码器(Encod…

18年408数据结构

第一题: 解析:这道题很简单,按部就班的做就可以了。 画出S1,S2两个栈的情况: S1: S2: 2 3 - 8 * 5 从S1中依次弹出两个操作数2和3&a…

某客户Oracle RAC无法启动故障快速解决

某日,9:50左右接到好友协助需求,某个客户Oracle RAC无法启动,并发过来一个报错截图,如下: 和客户维护人员对接后,远程登录服务端进行故障分析。 查看hosts信息,首先进行心跳测试,测…

DIDIDI~

1 最佳速通时间 小C准备参加某个游戏的速通比赛,为此他对该游戏速通了 n次,每次速通记录可以用一个数组 A{a1,a2……am}表示,其中a表示小C 从游戏开始到第i个游戏节点所花赛的时间,m 为游戏节点的个数。请根据小 C 的速通记录计算…

椭圆距离计算的简单方法

分析发现找到点到椭圆的最近距离等价于求解一元四次方程。想象一下一个圆和一个椭圆最多相交四次。从这个观点出发,问题转化为找到与椭圆仅相交一次的圆。如果用四次方程表示,其中两个根将在交点处共享,而另外两个根将会是复数。 尽管四次方程的封闭解确实存在,但迭代方法更…

肌筋膜炎可以自愈吗

肌筋膜炎是一种临床常见的疾病,主要表现为肌肉的筋膜发生无菌性炎症,可能由多种因素诱发,如风寒侵袭、疲劳、外伤、不良生活习惯及工作姿势等。关于肌筋膜炎是否可以自愈,主要取决于病情的严重程度和个体差异。 一、肌筋膜炎的自…

JMeter压测HTTPS 在window 11处理SSL证书认证

在此位置,找到chrome 的证书 证书到出到指定的路径, 利用jdk中的keytool.exe工具,重新生成证书 crm 去到命令窗口,再去到JDK路径下,如下 输入 keytool -import -alias “zhengshu.store” -file “D:\Program F…

阿里发布Qwen2.5:编程与数学的AI新革命!

阿里发布Qwen2.5:编程与数学的AI新革命! 阿里发布了Qwen2.5系列模型🚀,带来编程和数学领域的超强升级🦸‍♂️。多种规格可选,开源模型推动创新🔓,让AI助手更智能!快来体…

前段辅助工具分享(像素大厨)

引言: 我们在从事前端开发工作时,常会需要测量许多盒子的尺寸,颜色提取种种,切图,还有文字大小等信息,光从肉眼很难看出来,当然我们传统的会使用Photoshop来帮助我们完成这些工作,但…

Cadence23中的一些设置

Allegro AIDT DDR3自动等长Auto-Interactive Delay Tune: Cadence设置好规则之后再做等长就很方便,可以自动等长: 点击SELECT可以选中这一组的线,并进行高亮: 相对误差是15mil: 选择Accordition: 可以通过这个按键查看到底有没有…

OpenCV透视变换:原理、应用与实现

在图像处理与计算机视觉领域,透视变换(Perspective Transformation)是一种强大的工具,它模拟了人眼或相机镜头观看三维空间物体时的透视效果,从而改变图像的视角和形状。本文将详细介绍透视变换的原理、应用场景以及如…