
ElasticSearch - 索引库和文档相关命令操作
发布日期:2025-03-29 18:18:51
浏览次数:6
分类:精选文章
本文共 1680 字,大约阅读时间需要 5 分钟。
Elasticsearch索引库操作指南
一、Elasticsearch索引库操作
1.1 mapping属性
(mapping是对索引库文档的约束,以下是常见的mapping属性说明)
字段类型
- 字符串类型 (
text
,keyword
)text
:可以进行分词的文本字段,如搜索提示等。keyword
:精确值,无需分词的文本字段,如国家名、品牌名、IP地址等。
- 数值类型 (
long
,integer
,short
,byte
,double
,float
) - 布尔类型 (
boolean
) - 日期类型 (
date
) - 对象类型 (
object
)
其他属性
index
:是否创建索引,默认值为true
。analyzer
:指定使用哪种分词器,默认值为ik_smart
。properties
:字段的子字段定义。
示例
{ "properties": { "info": { "type": "text", "analyzer": "ik_smart" }, "email": { "type": "keyword", "index": "false" }, "createTime": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss", "index": "false" }, "name": { "properties": { "firstName": { "type": "keyword" } } } }}
通过 PUT
请求向指定索引库名下的 _mapping
路径发送上述JSON数据即可创建或更新索引库结构。
1.2 索引库相关操作
1.2.1 创建索引库
索引库的创建语法如下:
PUT / <索引库名>索引库名>
发送上述请求即可创建索引库,默认情况下索引库名为 v1
。
1.2.2 增加和删除索引库
- 查看索引库
GET / <索引库名>索引库名>
- 删除索引库
DELETE / <索引库名>索引库名>
1.2.3 修改索引库
索引库和 mapping
结构一旦创建后只能通过新增字段的方式进行修改。
PUT / <索引库名 _mapping>索引库名>
添加新的字段即可完成修改。如需新增字段 age
,发送以下数据:
{ "properties": { "age": { "type": "integer" } }}
二、文档操作
2.1 添加文档
添加文档的语法如下:
POST / <索引库名> _doc/ <文档id>文档id> 索引库名>
请求体中填写需存储的文档数据,如下示例:
{ "info": "您好,我是练习了两年半的偶像练习生,", "email": "cxk@itcast.cn", "name": { "firstName": "c", "lastName": "xk" }}
通过 POST 请求发送即可创建新文档。
2.2 查询文档
查询文档的语法:
GET / <索引库名> _doc/ <文档id>文档id> 索引库名>
如需查询某一文档的具体字段,可以在URL中追加字段名。
2.3 删除文档
删除文档的语法:
DELETE / <索引库名> _doc/ <文档id>文档id> 索引库名>
将 <文档ID>
替换为需要删除的文档ID即可。
2.4 修改文档
文档修改有两种方式:
方法一:全量修改(删除旧文档并新增新文档)
PUT / <索引库名> _doc/ <文档id>文档id> 索引库名>
将新数据发送到指定路径即可完成修改。
方法二:增量修改
POST / <索引库名> _update/ <文档id>文档id> 索引库名>
在请求体中传递修改的字段和新值,例如:
{ "doc": { "email": "ZhaoYun@itcast.cn" }}
这种方式可以直接修改指定字段的值,而不需要删除旧文档。
三、常见问题
- 如果通过
PUT
全量修改文档,其实质是先删除旧文档,再新增新文档。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月14日 10时52分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
[源码解析] 消息队列 Kombu 之 基本架构
2019-03-06
[源码分析] 消息队列 Kombu 之 启动过程
2019-03-06
wx.NET CLI wrapper for wxWidgets
2019-03-06
Powershell中禁止执行脚本解决办法
2019-03-06
OO_Unit2 多线程电梯总结
2019-03-06
04_Mysql配置文件(重要参数)
2019-03-06
JavaSE总结
2019-03-06
Python IO编程
2019-03-06
使用 TortoiseGit 时,报 Access denied 错误
2019-03-06
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2019-03-06
c++之程序流程控制
2019-03-06
李笑来必读书籍整理
2019-03-06
Hadoop(十六)之使用Combiner优化MapReduce
2019-03-06
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2019-03-06
C语言编译错误列表
2019-03-07
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07