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. 变量前缀__device__以及__managed__

    1.__device__ 作为变量前缀时,__device__限定符声明位于设备上的变量.如果此限定符单独使用,则变量具有以下特征: a.位于全局存储器空间中: b.与应用程序具有相同的生命周期: 可 ...

  2. linux gdb

    linux gdb linux 测试代码 #include <stdio.h> #include <stdlib.h> static char buf[255]; static ...

  3. IntelliJ IDEA之UML类图

    IntelliJ IDEA之UML类图 生成方法 Show Diagrams 选中需要的类,右键单击Diagrams,之后点击Show Diagrams,或者快捷键Ctrl+Alt+Shift+U 生 ...

  4. 在Linux上搭建测试环境常用命令(转自-测试小柚子)

    一.搭建测试环境: 二.查看应用日志: (1)vivi/vim 原本是指修改文件,同时可以使用vi 日志文件名,打开日志文件(2)lessless命令是查看日志最常用的命令.用法:less 日志文件名 ...

  5. 自然语言处理(四)统计机器翻译SMT

    1.统计机器翻译三要素 1.翻译模型 2.语言模型 3.排序模型 2.翻译流程 1.双语数据预处理 2.词对齐 3.构造短语翻译表 4.对短语翻译表进行概率估计 5.解码,beam search 6. ...

  6. Prometheus 企业微信报警/inhibit抑制 /静默(二)

    创建企业微信应用 注册企业微信:访问https://work.weixin.qq.com/,注册企业,随便填,不需要认证 创建应用 创建告警配置 vim /usr/local/prometheus-2 ...

  7. Httpclient代码

    /// <summary> /// 显示 /// </summary> /// <returns></returns> public ActionRes ...

  8. Python函数式编程之lambda表达式

    一:匿名函数的定义 lambda parameter_list: expression 二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果 三:map map(f ...

  9. 手动安装OpenCV下的IPP加速库

    写在前面 安装opencv的时候,往往会卡在这里: IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz 其实就是墙的原因,然后 ...

  10. HBuilder git使用-环境配置

    HBuilder中使用的是Egit插件,但提供的相关资料太少,这是目前遇到的一些问题的总结 1. 安装好egit插件后,本机需要安装Git windows的安装程序,并配置好相关的环境变量(理论上是自 ...