elasticsearch实例讲解增删改查
1、首先弄明白四个概念
| elasticsearch | 关系型数据库 |
| index | 数据库 |
| type | 表 |
| document | 行 |
| field | 字段 |
如果刚一开始理解比较困难,那你就在心中默念100遍,10遍也可以。。。
如果你做过面向对象开发,我觉得elasticsearch的这四个概念还是很好理解的。
需要重点说明的是document就是一个json格式的字符串,里面包括N个字段。我们可以想象将面向对象语言里面的一个对象序列化成json字符串。
关系型数据库需要先建库,再建表。elasticsearch不需要,在你新增的时候会根据你指定的index,type,document,field自动创建。当然先创建索引也是可以的。
接下来的测试我会这么定义我们的index,type
index:news
type:new
field:title,content。就两个吧,如下:
{
"title":"",
"content":""
}
我使用的客户端是kibana。
2、新增document
PUT news/new/6
{
"title":"title test",
"conent":"content test"
}
结果:
{
"_index": "news",
"_type": "new",
"_id": "6",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
},
"created": true
}
解释下:
PUT news/new/6
这条命令的原型是这样的:
PUT index/type/id
PUT命令是http请求的一种方式,如果了解过restful api,对这个命令应该不陌生。除了我们大家熟悉的get,post,还有put,delete,head等。
news就是我们需要创建的索引,可以理解为数据库
new就是我们需要创建的type,可以理解为表
6就是文档的id,可以理解为一条记录的id
仔细看返回结果,先别看_shards,其它几个字段大家看了之后应该会立马明白。
_version,是elasticsearch里面用来控制版本冲突的,知道下就行,如果修改或者删除,_version的值都会+1。
3、修改document
修改又分为全量修改和部分修改
全量修改用PUT,部分修改用POST
全量修改:
PUT news/new/6
{
"title":"title test"
}
用查询命令(下面有)查看结果:
{
"_index": "news",
"_type": "new",
"_id": "6",
"_version": 2,
"found": true,
"_source": {
"title": "title test"
}
}
纳尼?我的content字段呢?问题就出在这里,如果用全量修改(PUT),就等于是删除之后再新建。
如果有人说我只想修改title字段怎么办?看下面。
部分修改
POST /news/new/6/_update
{
"doc":{
"title":"abcdefg"
}
}
用查询命令(下面有)查看结果:
{
"_index": "news",
"_type": "new",
"_id": "6",
"_version": 4,
"found": true,
"_source": {
"title": "abcdefg",
"content": "content test"
}
}
我在执行POST命令前,把数据恢复了,所以在执行POST命令且只修改title字段后,content还是保留的。且_version变成了4,而不是3。
4、查询document
GET /news/new/6
结果:
{
"_index": "news",
"_type": "new",
"_id": "6",
"_version": 4,
"found": true,
"_source": {
"title": "abcdefg",
"content": "content test"
}
}
5、删除document
DELETE /news/new/6
结果:
{
"found": true,
"_index": "news",
"_type": "new",
"_id": "6",
"_version": 5,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 2,
"failed": 0
}
}
很简单。简单的增删改查介绍完毕。
剧透一下,接下来会讲中文分词+全文搜索
elasticsearch实例讲解增删改查的更多相关文章
- 04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作
前面大概了解了一下elasticsearch的数据存储和数据的查询.现在学习一下,es的复杂操作. 官网相关文档地址:https://www.elastic.co/guide/en/e ...
- elasticsearch索引的增删改查入门
为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/&l ...
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- Es学习第三课, ElasticSearch基本的增删改查
前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查:ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用.在第一课我们就讲了索 ...
- Spring MVC实例(增删改查)
数据库配置文件application-context-jdbc.xml <?xml version="1.0" encoding="UTF-8"?> ...
- SpringBoot 集成Elasticsearch进行简单增删改查
一.引入的pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...
- Elasticsearch Javascript API增删改查
查询 根据索引.类型.id进行查询: client.get({ index:'myindex', type:'mytype', id:1 },function(error, response){// ...
- lucene4.10.2实例(增删改查)
最新jar和src免费下载:http://download.csdn.net/detail/u011518709/8248403 lucene 包的组成结构:对于外部应用来说索引模块(index)和检 ...
- java连接mysql以及增删改查操作
java连接数据库的代码基本是固定的,步骤过程觉得繁琐些,代码记起来对我来说是闹挺.直接上代码: (温馨提醒:你的项目提前导入连接数据库的jar包才有的以下操作 ) class DBConnectio ...
随机推荐
- Django中HttpRequest和HttpResponse
请求和响应对象 Django中通过使用请求和响应对象来传递系统的状态. 当请求一个页面的时候,Django就创建一个HttpRequest对象,它包含了关于请求的元数据对象,然后Django加载适当的 ...
- parseObject方法将json字符串转换成Map
String nwVal=recordDO.getWorkOrderNwVal(); HashMap<String,WxhcWorkOrderDO> nwMap=JSON.parseObj ...
- Gradle详解
一.脚本文件(build.gradle) 项目与脚本文件 当我们执行gradle命令的时候,Gradle会在你执行命令的目录下寻找一个名为build.gradle的文件,这个文件就是Gradle的脚 ...
- 手淘移动适配方案flexible.js兼容bug处理
什么是flexible.js 移动端自适应方案 https://www.jianshu.com/p/04efb4a1d2f8 什么是rem 这个单位代表根元素的 font-size 大小(例如 元素的 ...
- java 使用内部类的理由
每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响 内部类有效的实现了多重继承,也就是说,内部类允许继承多个非接口类型(类或抽象类) 如 ...
- 怎么使用T-sql生成两位字母
SQL code select char(cast(rand()*25 as int)+97)+char(cast(rand()*25 as int)+97) select 两 ...
- java算法小例子
作为一个程序员,有时候我觉得自己都不适合,因为自己数学不好,算法不好,脑子不够灵活.而对于算法,感觉就像是数学题,总觉得很难.以前上学,在班里总有几个什么都不好,但唯独数学很厉害,真气人!面对难题时, ...
- Rookey.Frame v1.0 视频教程之三发布-框架核心思想介绍
本期发布视频: (三)Rookey.Frame v1.0框架核心思想 介绍了Rookey.Frame v1.0框架搭建的核心思想,将框架核心思想理解清楚,对框架运行就会得心应手 官方视频教程: htt ...
- 【LOJ】 #2545. 「JXOI2018」守卫
题解 只会蠢蠢的\(n^3\)--菜啊-- 我们发现最右的端点一定会选,看到的点一定是当前能看到的斜率最小的点变得更小一点,记录下这个点,在我们遇到一个看不到的点的时候,然后只用考虑R到它斜率最小的这 ...
- 【LOJ】#2562. 「SDOI2018」战略游戏
题解 圆方树建好之后点是原来的两倍,而st表求lca也要开到点的两倍,所以是四倍 我并没有开小,然而= =,我的预处理log2,写成了200000,而不是400000 我是不是折翼啊= = 很可写,我 ...