环境
  虚拟机:VMware 10
  Linux版本:CentOS-6.5-x86_64
  客户端:Xshell4
  FTP:Xftp4
  jdk8
  elasticsearch-2.2.0

一、Rest简介
Representational State Transfer
一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

REST的操作分为以下几种
  GET:获取对象的当前状态;
  PUT:改变对象的状态;
  POST:创建对象;
  DELETE:删除对象;
  HEAD:获取头信息。

ES内置的REST接口

二、curl-rest命令
curl属于linux命令,可以在命令行下访问url的一个工具,利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求
curl
  -X 指定http请求的方法
HEAD GET POST PUT DELETE
  -d 指定要传输的数据

1、创建索引库:wjy

[cluster@PCS101 bin]$ curl -XPUT http://196.168.123.101:9200/wjy/
{"acknowledged":true}
[cluster@PCS101 bin]$

2、创建类型(表):employee,插入一行记录,即文档document

#POST不指定ID 会自动生成ID;指定ID,会根据ID,如果存在该ID会更新,不存在就创建

[cluster@PCS101 bin]$ curl -XPOST http://196.168.123.101:9200/wjy/employee -d '
> {
> "first_name" : "bin",
> "age" : ,
> "about" : "I love to go rock climbing",
> "interests": [ "sports", "music" ]
> }'
{"_index":"wjy","_type":"employee","_id":"AWlv8cAl4hD4em0kzO4U","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}
索引库 类型 编号 版本 分片 是否创建成功

#PUT方式 后面必须指定ID编码,如果重复添加相同编码数据 会失败

[cluster@PCS101 bin]$ curl -XPUT http://196.168.123.101:9200/wjy/employee/ -d '
> {
> "first_name" : "god bin",
> "last_name" : "pang",
> "age" : ,
> "about" : "I love to go rock climbing",
> "interests": [ "sports", "music" ]
> }'
{"_index":"wjy","_type":"employee","_id":"","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}

3、增加field:sex

[cluster@PCS101 bin]$ curl -XPOST http://196.168.123.101:9200/wjy/employee -d '
> {
> "first_name" : "pablo2",
> "age" : ,
> "about" : "I love to go rock climbing",
> "interests": [ "sports", "music" ],
> "sex": "man"
> }'
{"_index":"wjy","_type":"employee","_id":"AWlv-tng4hD4em0kzO4W","_version":,"_shards":{"total":,"successful":,"failed":},"created":true}

4、获取数据 GET
(1)根据document的id来获取数据:pretty参数就是用json格式化的方式展示

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/1?pretty
{
"_index" : "wjy",
"_type" : "employee",
"_id" : "",
"_version" : ,
"found" : true,
"_source" : {
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}

对比:

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/1
{"_index":"wjy","_type":"employee","_id":"","_version":,"found":true,"_source":
{
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}}

(2)根据field来查询数据:_search根据索引查找

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?q=first_name="bin"
{"took":,"timed_out":false,"_shards":{"total":,"successful":,"failed":},"hits":{"total":,"max_score":0.014065012,"hits":[{"_index":"wjy","_type":"employee","_id":"AWlv8cAl4hD4em0kzO4U","_score":0.014065012,"_source":
{
"first_name" : "bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}},{"_index":"wjy","_type":"employee","_id":"AWlv91mF4hD4em0kzO4V","_score":0.01125201,"_source":
{
"first_name" : "gob bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}},{"_index":"wjy","_type":"employee","_id":"","_score":0.01125201,"_source":
{
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}}]}}

(3)根据field来查询数据,参数封装起来传进去:match 匹配

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?pretty -d '
> {
> "query":
> {"match":
> {"first_name":"bin"}
> }
> }'
{
"took" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : 0.30685282,
"hits" : [ {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv8cAl4hD4em0kzO4U",
"_score" : 0.30685282,
"_source" : {
"first_name" : "bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}, {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv91mF4hD4em0kzO4V",
"_score" : 0.19178301,
"_source" : {
"first_name" : "gob bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}, {
"_index" : "wjy",
"_type" : "employee",
"_id" : "",
"_score" : 0.19178301,
"_source" : {
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
} ]
}
}

#对多个field发起查询:multi_match

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?pretty -d '
> {
> "query":
> {"multi_match":
> {
> "query":"bin",
> "fields":["last_name","first_name"],
> "operator":"and"
> }
> }
> }'
{
"took" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : 0.09415865,
"hits" : [ {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv8cAl4hD4em0kzO4U",
"_score" : 0.09415865,
"_source" : {
"first_name" : "bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}, {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv91mF4hD4em0kzO4V",
"_score" : 0.058849156,
"_source" : {
"first_name" : "gob bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}, {
"_index" : "wjy",
"_type" : "employee",
"_id" : "",
"_score" : 0.058849156,
"_source" : {
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
} ]
}
}

(4)多个term对多个field发起查询:bool(boolean),组合查询,must,must_not,should
#must + must : 交集

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?pretty -d '
> {
> "query":
> {"bool" :
> {
> "must" :
> {"match":
> {"first_name":"bin"}
> },
> "must" :
> {"match":
> {"age":}
> }
> }
> }
> }'
{
"took" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : 0.4339554,
"hits" : [ {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv8cAl4hD4em0kzO4U",
"_score" : 0.4339554,
"_source" : {
"first_name" : "bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
} ]
}
}

#must +must_not :差集

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?pretty -d '
> {
> "query":
> {"bool" :
> {
> "must" :
> {"match":
> {"first_name":"bin"}
> },
> "must_not" :
> {"match":
> {"age":}
> }
> }
> }
> }'
{
"took" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : 0.19178301,
"hits" : [ {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv91mF4hD4em0kzO4V",
"_score" : 0.19178301,
"_source" : {
"first_name" : "gob bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}, {
"_index" : "wjy",
"_type" : "employee",
"_id" : "",
"_score" : 0.19178301,
"_source" : {
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
} ]
}
}

#must+must_not 查询first_name=bin的,或者年龄在20岁到33岁之间的

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?pretty -d '
> {
> "query":
> {"bool" :
> {
> "must" :
> {"term" :
> { "first_name" : "bin" }
> }
> ,
> "must_not" :
> {"range":
> {"age" : { "from" : , "to" : }
> }
> }
> }
> }
> }'
{
"took" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : 0.19178301,
"hits" : [ {
"_index" : "wjy",
"_type" : "employee",
"_id" : "AWlv91mF4hD4em0kzO4V",
"_score" : 0.19178301,
"_source" : {
"first_name" : "gob bin",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
}, {
"_index" : "wjy",
"_type" : "employee",
"_id" : "",
"_score" : 0.19178301,
"_source" : {
"first_name" : "god bin",
"last_name" : "pang",
"age" : ,
"about" : "I love to go rock climbing",
"interests" : [ "sports", "music" ]
}
} ]
}
}

#must_not+must_not  : 并集

[cluster@PCS101 bin]$ curl -XGET http://196.168.123.101:9200/wjy/employee/_search?pretty -d '
> {
> "query":
> {"bool" :
> {
> "must_not" :
> {"match":
> {"first_name":"bin"}
> },
> "must_not" :
> {"match":
> {"age":}
> }
> }
> }
> }'
{
"took" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : null,
"hits" : [ ]
}
}

(5)删除

curl -XDELETE http://196.168.123.101:9200/test2/

(6)设置

#设置备份数
curl -XPUT 'http://196.168.123.101:9200/test2/' -d'{"settings":{"number_of_replicas":2}}' #设置分片数 备份数
curl -XPUT 'http://196.168.123.101:9200/test3/' -d'{"settings":{"number_of_shards":3,"number_of_replicas":3}}'

【Elasticsearch学习之二】Elasticsearch Rest风格操作的更多相关文章

  1. ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解

    前言 在上一篇中介绍了ElasticSearch集群和kinaba的安装教程,本篇文章就来讲解下 ElasticSearch的DSL语句使用. ElasticSearch DSL 介绍 Elastic ...

  2. Docker学习(二)docker镜像操作

    上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...

  3. jquery学习笔记(二):DOM元素操作

    内容来自[汇智网]jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,val ...

  4. Elasticsearch学习系列二(基础操作)

    本文将分为3块讲解Es的基础操作.分别为:索引(index).映射(mapping).文档(document). 索引操作 创建索引库 语法: PUT /索引名称{ "settings&qu ...

  5. 2018/2/11 ELK技术栈之ElasticSearch学习笔记二

    终于有时间记录一下最近学习的知识了,其实除了写下的这些还有很多很多,但懒得一一写下了: ElasticSearch添加修改删除原理:ElasticSearch的倒排索引和文档一旦生成就不允许修改(其实 ...

  6. Elasticsearch 学习(二):安装和使用

    一.安装 安装 Elasticsearch 之前,需要先安装 Java,并配置好 Java 环境变量. 安装好 Java 环境后,进入 Elasticsearch 官网下载安装包. 解压安装包,进入解 ...

  7. Elasticsearch学习笔记二

    PS:上一篇已经介绍了ES的一些基础概念以及单机版ES的安装,配置,本文主要介绍ES的集群管理,CRUD以及简单聚合查询. 集群管理 ES的集群部署起来也很方便,将单机版SCP复制几分,修改elast ...

  8. ElasticSearch学习笔记-02集群相关操作_cat参数

    _cat参数允许你查看集群的一些相关信息,如集群是否健康,有哪些节点,以及索引的情况等的. 检测集群是否健康 curl localhost:9200/_cat/health?v 说明: curl 是一 ...

  9. Elasticsearch学习(二)————搜索

    Elasticsearch1.query string search1.1.搜索全部// 1. GET http://ip:9200/test/test/_search 结果: { "too ...

随机推荐

  1. 洛谷P2329 栅栏 [SCOI2005] 搜索

    正解:搜索 解题报告: 先放下传送门! 首先说下爆搜趴,就直接枚每个需求是否被满足以及如果满足切哪个板子,随便加个最优性剪枝,似乎是有80pts 然后思考优化 首先显然尽量满足需求比较小的,显然如果能 ...

  2. MySQL InnoDB加锁超时回滚机制(转)

    add by zhj: 看来我对MySQL的理解还有待深入,水还是挺深的啊,MySQL给记录加锁时,可以通过innodb_lock_wait_timeout参数设置超时时间, 如果加锁等待超过这个时间 ...

  3. Why does the memory usage increase when I redeploy a web application?

    That is because your web application has a memory leak. A common issue are "PermGen" memor ...

  4. systemctl介绍

    声明:本文转载自:systemd (中文简体) systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本.systemd 的特性有:支持并行化任务:同一时候採用 ...

  5. [MySQL优化1]centos中MySQL列出所有表

    步骤1 - 连接到MySQL数据库服务器:[root@host]# mysql -u root -pEnter password:******提示登陆成功Welcome to the MySQL mo ...

  6. dedecms前端无法调用自定义变量怎么解决

    网友问ytkah说他的dedecms前端无法调用自定义变量要怎么解决,登录他的网站后台看了一下,自定义变量已经添加了,也写入了数据库表中,但是就是前台没办法调用出来,后面想想可能是文件权限不够,具体是 ...

  7. 20170719 Mysql 配置远端Mysql访问,增加表/存储过程

    -- 1 .在windows 环境中安装Mysql 会按照到默认的C盘当中,如何修改呢--? -- 2. 如何只安装客户端不安装Mysql 数据库服务  --? -- 3. 表的特殊列,默认采用函数值 ...

  8. uWSGI+APScheduler不能执行定时任务

    在本地项目中使用APScheduler运行定时任务ok,但是在服务器上用uwsgi部署的Django环境下,APScheduler定时任务并不会被启动. 原因:uwsgi 默认one thread o ...

  9. 爬虫解析库——BeautifulSoup

    解析库就是在爬虫时自己制定一个规则,帮助我们抓取想要的内容时用的.常用的解析库有re模块的正则.beautifulsoup.pyquery等等.正则完全可以帮我们匹配到我们想要住区的内容,但正则比较麻 ...

  10. MySQL 多源复制(Mulit-Source Replication)

    MySQL多源复制方案        看复制源Master_1的同步状态:SHOW SLAVE STATUS FOR CHANNEL 'Master_1'\G 查看复制源Master_2的同步状态:S ...