Elasticsearch的CRUD操作

1、添加信息	

PUT http://192.168.56.201:9200/demo/employee/1?op_type=create
{
	"first_name" : "John",
	"last_name" :  "Smith",
	"age" :        25,
	"about" :      "I love to go rock climbing",
	"interests": [ "sports", "music" ]
}
PUT http://192.168.56.201:9200/demo/employee/1/_create
{
	"first_name" : "John",
	"last_name" :  "Smith",
	"age" :        25,
	"about" :      "I love to go rock climbing",
	"interests": [ "sports", "music" ]
}

2、删除信息

DELETE  http://192.168.56.201:9200/megacorp/employee/1

3、搜索信息

3.1、搜索所有
GET http://192.168.56.201:9200/megacorp/employee/_search
3.2、搜索指定ID
GET http://192.168.56.201:9200/megacorp/employee/1
3.3、按照关键词搜索
GET http://192.168.56.201:9200/megacorp/employee/_search?q=last_name:Smit
其中last_name是要搜索的字段,Smith是该字段的值
3.4 使用Query  DSL查询
GET http://192.168.56.201:9200/megacorp/employee/_search
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}

4、更新或添加信息

PUT http://192.168.56.201:9200/demo/employee/1
{
	"first_name" : "John",
	"last_name" :  "Smith",
	"age" :        25,
	"about" :      "I love to go rock climbing",
	"interests": [ "sports", "music" ]
}
如果不存在则新建

5、乐观并发控制
在更新或者删除时可以使用_version参数来控制

6、更新部分文档部分内容
POST http://192.168.56.201:9200/demo/employee/1/_update
{
	"first_name" : "John",
	"tags":["test"]
}

7、冲突重试
POST http://192.168.56.201:9200/demo/employee/1/_update?retry_on_conflict=5
使用场景:更新文章点击次数

8、检索多个文档
GET /_mget
{
   "docs" : [
      {
         "_index" : "website",
         "_type" :  "blog",
         "_id" :    2
      },
      {
         "_index" : "website",
         "_type" :  "pageviews",
         "_id" :    1,
         "_source": "views"
      }
   ]
}
相同index和type
GET /website/blog/_mget
{
   "ids" : [ "2", "1" ]
}

9、批量操作
POST _bulk?pretty
{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }} 
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title":    "My first blog post" }
{ "index":  { "_index": "website", "_type": "blog" }}
{ "title":    "My second blog post" }
{ "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
{ "doc" : {"title" : "My updated blog post"} }

备注:每行使用换行符分开,bulk操作不是原子性的;批量要注意每次提交的文档大小

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏铭毅天下

Elasticsearch6.X 去重详解

1、题记 Elasticsearch有没有类似mysql的distinct的去重功能呢? 1)如何去重计数? 类似mysql: select distinct(...

68370
来自专栏Django Scrapy

Elasticsearch1.0 介绍

优势 开源,稳定,快速,可扩展 由 Java开发 基于 restful web接口与服务器交互的分布式搜索引擎 搜索引擎除了elasticsearch还有 s...

29750
来自专栏KaliArch

ELK自动安装脚本

ELK由Elasticsearch、Logstash和Kibana三部分组件组成;

62750
来自专栏铭毅天下

Elasticsearch 6.X 新类型Join深入详解

0、ES6.X 一对多、多对多的数据该如何存储和实现呢? 引出问题: “某头条新闻APP”新闻内容和新闻评论是1对多的关系? 在ES6.X该如何存储、如何进行高...

4.6K90
来自专栏Django Scrapy

Elasticsearch1.1 安装(好多坑)

安装Elasticsearch 1.安装elasticsearch-rtf elasticsearch-rtf 是国内某大神根据 elasticsearch 安...

46930
来自专栏铭毅天下

干货 | 吃透Elasticsearch 堆内存

1、什么是堆内存? Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域: 新生代...

61340
来自专栏从零开始的linux

部署elk平台

说明 对于ELK部署使用而言,下面是一个再常见不过的架构了 Redis:接收用户日志的消息队列。 Logstash:做日志解析,统一成JSON输出给Elasti...

69430
来自专栏PPV课数据科学社区

【解读】2015之大数据篇:大数据的黄金时代

2015年,整个IT技术领域发生了许多深刻而又复杂的变化,InfoQ策划了“解读2015”年终技术盘点系列文章,希望能够给读者清晰地梳理出技术领域在这一年的发展...

397100
来自专栏Django Scrapy

python实现mysql数据同步到elasticsearch

环境: python3.5 支持包: pymysql elasticsearch_dsl 安装 pymysql elasticsearch_dsl p...

52950
来自专栏Django Scrapy

python实现创建elasticsearch索引和Type

环境: python3.5 支持包: pymysql elasticsearch_dsl 安装 elasticsearch_dsl pip insta...

44250

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励