ElasticSearch学习之二:Head插件的安装以及ES的RESTful API使用

本文介绍了ElasticSearch(ES)与Solr、传统关系型数据库的区别,并详细讲解了如何安装和配置ES的Head插件,以及如何使用ES的RESTful API进行数据操作,包括创建索引库、查询、更新和删除等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. ES与Solr对比

Solr在海量历史数据的检索上比较有优势,而ES在实时检索上更加强大。

(1)Solr支持更多的数据格式:JSON、XML、CSV

ES仅支持JSON

(2)Solr需要Zookeeper来进行分布式管理,而ES自身带有分布式协调管理功能

(3)Solr官方提供的功能更多,而ES更注重核心功能,高级功能多交给第三方插件

2. ES与关系型数据库对比

关系型数据库:Database(数据库) Table(表) Row(行) Column(列)

ES: Index(索引库) Type(类型) Document(文档) Field(字段)

3. ES应用场景

站内搜索、NoSQL JSON文档数据库(读写性能上优于MongoDB,同时支持地理位置查询)、监控(统计、日志类时间序的数据的存储和分析)

4. ES head插件

(1)显示集群的拓扑,并且能够执行索引和节点级别操作

(2)搜索接口能够查询集群中原始JSON或表格格式的检索数据

(3)能够快速访问并显示集群的状态

@在ES5版本以后采用独立服务的形式进行安装,安装方法如下:

(1)首先需要安装nodejs、npm(root用户下)

yum -y install nodejs npm

如果提示"No package npm available"问题,先输入:rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

(2)安装git

yum -y install git

(3)下载head

切换成普通用户

git clone https://github.com/mobz/elasticsearch-head.git

(4)安装head

cd elasticsearch-head/

npm install

注意:如果报错显示 npm ERR! Error: CERT_UNTRUSTED,这是ssl验证问题,可使用下面命令解决: npm config set strict-ssl false

@head插件的配置:

在elasticsearch-head目录下:

(1)修改Gruntfile.js配置,添加hostname:'*'

(2)修改head/_site/app.js文件

修改head连接es的地址

(3)对ES配置

修改elasticsearch.yml文件,增加跨域配置

http.cors.enabled: true

http.cors.allow-origin: "*"

@启动head插件

配置完成后,进入elasticsearch-head/node_modules/grunt/bin,然后执行脚本

./grunt server,成功后通过浏览器访问URL:IP:9100

 

 

5. ES REST操作

(1)REST(REpresentation State Transfer)

描述了一个架构样式的网络系统,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计我们称之为RESTful。

(2)ES内置的REST接口

 

(3)ES的REST操作

#1. 创建索引库

curl -XPUT 'http://192.168.10.129:9200/test/'

注意:

索引库名称必须全部小写

#2. 添加一个字段PUT/POST

curl -H "Content-Type: application/json" -XPOST http://192.168.10.129:9200/test/user/1 -d '{"name" : "jack", "age" : 28}'

## 综合用例:

curl -H "Content-Type: application/json" -X(POST/PUT) http://localhost:9200//索引库/类型名/id/_create -d 字段数据(JSON格式)

注意:

##

PUT操作适用于更新(幂等方法),多次操作后结果没有不同

POST操作适用于新增操作(非幂等)会有重复加载问题,当多次执行POST操作后,会创建出若干个资源。

##

如果没有明确指定索引数据ID那么ES会随机生成ID,需要使用POST操作

#3. 查询索引库GET

## 根据id查询

curl -XGET "http://192.168.10.129:9200/test/user/1"

## 显示指定字段(添加pretty字段,可以返回JSON形式的结果)

curl -XGET 'http://192.168.10.129:9200/test/user/1?_source=age&pretty'

## 根据条件查询

curl -XGET 'http://192.168.10.129:9200/test/user/_search?q=name:jack&pretty=true'

## 综合得出:查询范例

curl -XGET "http://localhost:9200/索引库/类型名/id?(_source=?)&(_search=?)&(pretty=?)

#4. 更新

## 局部更新

可以添加新字段或者更新已有字段(必须使用POST)

curl -H "Content-Type: application/json" -XPOST http://localhost:9200/索引库/类型名/id/_update -d 字段数据(JSON格式)

#5. 删除

curl -XDELETE url

#6. 批量操作 -bulk

bulk API可以帮助我们同时执行多个请求

执行方式:

##1. 首先先创建一个文件,内部填写以下用例:

用例:

{"index":{"_index":"test","_type":"user","_id":"1"}}

{"name":"jack","age":23}

##2. 执行批量操作

curl -H "Content-Type: application/json" -XPOST http://localhost:9200/_bulk --data-binary @文件名

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值