ElasticSearch6.0以上版本的增删改查基本操作
基于JSON的REST API与ElasticSearch进行通信。可以使用任何HTTP客户端来通信。当然ElasticSearch自己的文档中,所有示例都是使用curl的

一、创建和更新

  • 创建索引

请求示例:

创建customer索引

curl -XPUT 'http://localhost:9200/students' -d '

释义:

customer为索引名称

json返回:

{
"acknowledged": true,
"shards_acknowledged": true,
"index": "students"
}
  • 索引文档

往索引中增加点文档数据

请求示例:

curl -XPUT "http://localhost:9200/students/student/1" -d'
{
"name": "jack",
"age": ,
"sex" :"boy"
}

释义:

put请求,在students索引中增加一条类型(type)为student,id为的文档数据

注意:

  1. type只是Index中的虚拟逻辑分组,不同的Type应该有相似的结构。6.x版只允许每个Index包含一个Type,7.x 版将会彻底移除 Type
  2. id部分是可选的。如果不指定ID,ElasticSearch会为我们生成一个ID。 但是,如果不指定id,应该使用HTTP的POST而不是PUT请求。
  3. 索引名称是任意的。如果服务器上没有此名称的索引,则将使用默认配置来创建一个索引。

json返回:

{
  "_index": "students",
  "_type": "student",
  "_id": "",
  "_version": ,
  "result": "created",
  "_shards": {
    "total": ,
    "successful": ,
    "failed":
  },
  "_seq_no": ,
  "_primary_term":
}
  • 更新文档

只需要使用相同的ID索引它。即和上面的例子相同索引请求,即可更新,也就是说,我们向索引中加入文档,不存在相同ID的文档会插入,存在则更新。

  • 批处理

除了在单个文档上执行索引,更新和删除操作外,Elasticsearch还提供了批操作的功能,通过使用 bulk API完成。这个功能非常重要,因为它提供了一种非常高效的机制去通过更少的网络切换尽可能快的执行多个操作。

Elasticsearch将根据请求体中提供的数据自动创建映射,我们将使用其批量功能在此索引中添加多个JSON对象。

请求示例:

curl -XPOST 'localhost:9200/students/student/_bulk'

{"create":{"_id":2}}
  {"name":"小明","age":15,"sex":"girl"}
  {"create":{"_id":3}}
  {"name":"小东","age":16, "sex":"boy"}

释义:

批量插入两条ID为2和3的文档

1.bulk api对json 的语法有严格的要求,每个json串不能换行,同时一个json串和一个json串之间,必须有一个换行

2.必须以换行结束

json返回:

{
"took": ,
"errors": false,
"items": [
{
"create": {
"_index": "students",
"_type": "student",
"_id": "",
"_version": ,
"result": "created",
"_shards": {
"total": ,
"successful": ,
"failed":
},
"_seq_no": ,
"_primary_term": ,
"status":
}
},
{
"create": {
"_index": "students",
"_type": "student",
"_id": "",
"_version": ,
"result": "created",
"_shards": {
"total": ,
"successful": ,
"failed":
},
"_seq_no": ,
"_primary_term": ,
"status":
}
}
]
}

二 、简单查询

通过ID来快速获取文档

请求示例:

curl -XGET 'http://localhost:9200/students/student/1?'

释义:

查询students索引,类型为student,ID为的文档

json返回:

{
  "_index": "students",
  "_type": "student",
  "_id": "",
  "_version": ,
  "found": true,
  "_source": {
    "name": "jack",
    "age": ,
    "sex": "boy"
  }
}

三、删除

请求示例:

curl -XDELETE ‘http://localhost:9200/students/student/1’  -d'

curl -XDELETE 'localhost:9200/students' -d'

释义:

第一个是删除students索引,类型为student,ID为1的文档

第二个是直接删除students索引

json返回:

{
  "_index": "students",
  "_type": "student",
  "_id": "",
  "_version": ,
  "result": "deleted",
  "_shards": {
    "total": ,
    "successful": ,
    "failed":
  },
  "_seq_no": ,
  "_primary_term":
}

四、搜索

REST API可以使用_search端点来实现搜索

  • 查询students索引下所有文档数据,按age升序排序
http://192.168.0.111:9200/students/_search?sort=age:asc       
  • 查询students索引下类型为student的所有文档数据
http://192.168.0.111:9200/students/student/_search  

全文检索-Elasticsearch (二) CURD的更多相关文章

  1. windows下mongodb基础玩法系列二CURD附加一

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

  2. windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

  3. 全文检索-Elasticsearch (四) elasticsearch.net 客户端

    本篇摘自elasticsearch.net search入门使用指南中文版(翻译) 原文:http://edu.dmeiyang.com/book/nestusing.html elasticsear ...

  4. 全文检索-Elasticsearch (一) 安装与基础概念

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口 Elasticsearch由java开发,所以在搭建时,需先安 ...

  5. ElasticSearch(二)CentOs6.4下安装ElasticSearch

    一.准备工作 Elastic 需要 Java 8 环境.如果你的机器还没安装 Java,先需要安装java环境,同时还注意要保证环境变量JAVA_HOME正确设置. 链接:https://pan.ba ...

  6. I-team 博客全文检索 Elasticsearch 实战

    一直觉得博客缺点东西,最近还是发现了,当博客慢慢多起来的时候想要找一篇之前写的博客很是麻烦,于是作为后端开发的楼主觉得自己动手丰衣足食,也就有了这次博客全文检索功能Elasticsearch实战,这里 ...

  7. ElasticSearch 全文检索— ElasticSearch 核心概念

    ElasticSearch核心概念-Cluster 1)代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字 ...

  8. ElasticSearch 全文检索— ElasticSearch概述

    ElasticSearch 产生背景 1.海量数据组合条件查询 2.毫秒级或者秒级返回数据 Lucene 定义 lucene是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一 ...

  9. Elasticsearch基本CURD操作语法讲解

    当我们的ES集群搭建完成以后,我怎么能看到集群中各个节点状态以及主节点和健康情况呢,如下讲解使用curl命令来与ES集群进行交互.分别有查询主节点情况.集群状态.以及创建索引查看索引.查看分片以及对E ...

随机推荐

  1. Inmon和Kimball数仓建模思想

    Inmon和Kimball是数据仓库领域伟大的开拓者,他们均多年从事数据仓库的研究,Inmon还被称为“数据仓库之父”.Inmon的<数据仓库>和Kimball的<数据仓库工具箱&g ...

  2. git如何避免push/pull时输入密码

    今天在搭建git服务器的时候,一切顺利,但是就是在git push的时候老是要输入密码,太烦了,然后百度搜索了一下,总结了主要有如下三种方法: 方法1 git config --global cred ...

  3. [LeetCode] Buddy Strings 伙计字符串

    Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...

  4. pytorch可视化工具visdom

    visdom的github repo: https://github.com/facebookresearch/visdom 知乎一个教程:https://zhuanlan.zhihu.com/p/3 ...

  5. 删除 id 列表 存进数据库

    当图片写的传id的时候 用着方法存进数据库

  6. android中Imageview的布局和使用

    布局: <ImageView android:id="@+id/imt_photo" android:layout_width="fill_parent" ...

  7. Roslyn还出现这么低级的错误,不应该呀!

    前几天对Dora.Interception作了简单的重构,想提供C#脚本来定义Interception Policy,毫无疑问微软提供的编译平台Roslyn使C#脚本化提供了支持.但是没有想到随便尝试 ...

  8. harbor在谷歌云上搭建 日志

    参考:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md 日志: [root@instance-1 harb ...

  9. 实战深度学习OpenCV(一):canny边缘检测

    利用canny边缘检测,我们可以很好地得到哦一个图像的轮廓,下面是基于C++的,这是我们通过这段代码得到的结果: #include "pch.h" #include <ios ...

  10. Java打包商用化软件

    这是我在博客中写的第一篇文章.还请各位大神们多多指教!我会详细讲解如何将我们由java的swing以及awt组件编写出的java可视化窗口程序编制成一个我们能够让用户使用的,商业化,可安装的软件.网上 ...