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. ubuntu12.4上安装minigui3.0.12

    在ubuntu12.4上安装minigui3.0.12 一下载源文件 移植所需的文件可以从minigui官网下载:http://www.minigui.org/en/download/ 主要文件有: ...

  2. 练习2-1 Programming in C is fun!

    练习2-1 Programming in C is fun! 一 问题描述 本题要求编写程序,输出一个短句“Programming in C is fun!”. 输入格式: 本题目没有输入. 输出格式 ...

  3. URI ,URL 和 URN

    URI : 统一资源标识符,用来唯一标识互联网资源,包括URL和URN URL:统一资源定位器 包含: 协议,域名,端口,路由,参数,hash https://i.cnblogs.com/EditPo ...

  4. 12-JSP&EL&JSTL

    JSP & EL & JSTL jsp Java Server Page 什么是jsp 从用户角度看待 ,就是是一个网页 , 从程序员角度看待 , 其实是一个java类, 它继承了se ...

  5. 打包java程序生成exe

    打包java程序生成exe 目标 我们知道c++的控制台程序编译运行以后就会生成一个exe可执行文件,在电脑上可以直接双击运行,但是java是跨平台的语言,编译运行以后的字节码文件.class是和平台 ...

  6. wpf 的各个template

    --转载 在使用TabControl.ListView.Menu.TreeView的时候被各种Template搞得头昏眼花,决心把这个问题搞清楚,究竟什么时候该用什么Template?这是个麻烦的问题 ...

  7. 微信网页悬浮窗交互效果的web实现

    一.微信的悬浮窗交互效果 微信更新后,发现多了个悬浮窗功能.公众号阅读,网页浏览回退后默认会出现.再点击,可以回到刚才阅读的地方.于是,再也不会遇到回复老婆的信息,再切换回来重新找刚才阅读东西的麻烦了 ...

  8. django+javascrpt+python实现私有云盘代码

    丁丁:由于篇幅有限,这里暂时只展示python后端代码,前端js代码后面上传,有需要的也可以留言私信我. 1.view.py 使用用户.部门.公司等相关账号的创建,已经个人,部门账号的冻结,删除,相关 ...

  9. 929. Unique Email Addresses

    929. Unique Email Addresses Easy 22766FavoriteShare Every email consists of a local name and a domai ...

  10. 10. vue axios 请求未完成时路由跳转报错问题

    axios 请求未完成时路由跳转报错问题 前两天项目基本功能算是完成了,在公司测试时遇到了遇到了一个问题,那就是在请求未完成时进行路由跳转时会报错,想了几种办法来解决,例如加loading,请求拦截, ...