Windows下ElasticSearch的Head安装及基本使用
前段时间,有一朋友咨询我,说es的head插件一直安装失败,为了给朋友解惑,自己百度博文并实践了一番,也的确踩了些坑,但我给爬了起来。今天就来分享下实践心得并跳过的坑。
ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力,简称es。本文分五部分描述,es的安装,head插件安装,es的基本概念,es的基本使用,问题总结。
目录
一、es安装
安装方式网络上有很多,这里简单说下步骤,具体实践是很简单的
①配置java环境
需要java环境,最好是较新的java环境,java环境的配置就略过了
②安装elasticsearch
下载地址:https://www.elastic.co/cn/downloads/elasticsearch,最新版本已是7.2.0。下载后,解压到任意目录,我的路径是:D:\elasticsearch-7.2.0
③启动elasticsearch
es的默认端口是9200,在浏览器打开网址:localhost:9200,出现如下截图,则说明es已经安装成功了
es的安装是不是很简单?接下来来安装head插件
二、head插件安装
1.安装node
es5以上就需要安装node和grunt,所以安装head插件的前提,是需要把该两项配置好。
node下载地址:https://nodejs.org/en/download/,下载对应环境的node版本安装即可,安装步骤略过了。
安装过程结束后,在dos窗口查看是否安装成功,使用命令:node -v,出现如下截图,则说明安装成功。
2.安装grunt
在node安装路径下,使用命令安装:npm install -g grunt-cli 安装grunt。
安装结束后,使用命令grunt -version查看是否安装成功,出现如下截图,说明安装成功。
3.安装head插件
①下载head插件
下载地址:https://github.com/mobz/elasticsearch-head,下载zip包
②解压zip包
我的解压路径:D:\elasticsearch-7.2.0\elasticsearch-head-master
③安装pathomjs
在dos窗口进入到head路径下,使用命令npm install安装pathomjs
④启用服务
使用命令npm start启用服务,出现如下截图,则说明服务启动成功
4.浏览器中访问
使用地址:localhost:9100访问,出现如下截图,则说明head安装成功,默认端口是9100
es和head插件都已安装成功,接下来介绍下es的基本概念及基本使用。
三、es的基本概念
①集群和节点
一个es集群是由一个或多和es节点组成的集合,每一个集群都有一个名字,每个节点都有自己的名字,节点是可以存储数据, 参与索引数据的独立服务。
②索引(类似于数据库里面的database)
索引是含有相同属性的文档集合,索引在es中是通过一个名字来识别的,必须是英文字母小写,且不含中划线。
③类型(相当于sql中的table)
一个索引可以定义一个或多个类型,文档必须属于一个类型
④文档(相当于sql中的一行记录)
文档是可以被索引的基本数据单位
⑤分片
每个索引都有多个分片,每个分片都是一个luncene索引,分片的好处:分摊索引的搜索压力,分片还支持水平的拓展和拆分以及分布式的操作,可以提高搜索和其他处理的效率。
⑥备份
拷贝一个分片就完成了分片的备份,备份的好处:当主分片失败或者挂掉,备份就可以代替分片进行操作,进而提高了es的可用性,备份的分片还可以进行搜索操作,以分摊搜索的压力。es在创建索引时,默认创建5个分片,一份备份,可以修改,分片的数量只能在创建索引的时候指定,索引创建后就不能修改分片的数量了,而备份是可以动态修改的。
⑦数据类型
四、es基本使用
1.es基本格式
2.创建索引
在head插件中创建,操作如下:
点击索引>新建索引
弹出该提示,则说明创建成功
3.查看索引信息
点击概览查看创建情况
创建索引分为: 结构化创建与非结构化创建
查看索引是否是结构化的方法:点击刚创建的索引信息,可查看到如下所示信息:
Mappings是结构化的一个关键词,其后内容是空的,说明这个索引是一个非结构化的索引。
4.创建结构化索引
点击head插件的“复合查询”,输入内容如下:
勾选易读,点击验证json,可以检测json格式是否正确
请求方式选择post,点击提交请求,返回如下截图数据,则表示创建成功
创建成功后,可以返回到概览中查看索引信息,如下:
也可以直接在复合查询中,改成get请求方式,提交请求,查看数据:
5.数据插入
文档id, 唯一索引值, 指向文档数据
①指定文档id插入
使用http中的put方法,插入时输入的ip地址,http://localhost:9200/test/_doc/1
请求参数依次为:索引名称/类型名称/文档id
请求参数
{
"duty": "技术",
"age": 22,
"name": "一壶清酒",
"date": "2019-07-21 11:00:00"
}
如下图所示:
在数据浏览中可查看到该条数据,如下所示:
②自动产生文档id插入
使用http中的post方法,插入时输入的ip地址:http://localhost:9200/test/_doc
请求参数
{
"duty": "测试",
"age": 25,
"name": "温一壶清酒",
"date": "2019-07-21 11:05:00"
}
依然到数据浏览中查看数据,如下所示,id为自动生成:
③postman插入数据
操作方式一样,只是改成了postman而已,入参如下所示:
到数据浏览处查看数据,如下:
postman的操作,就只引用了这一个例子,其他操作都一样,所以就不再赘述。
6.修改文档数据
①直接修改文档
http方法: post方法
请求地址:
http://localhost:9200/test/_doc/1/_update
请求参数
{
"doc": {
"duty": "技术",
"age": 22,
"name": "我是一壶清酒",
"date": "2019-07-21 11:06:00"
}
}
关键词: _update,doc
“doc”为关键字,要修改的文档放在doc中, 实例修改了type为test索引下_doc中id为1 的name和date属性
到数据浏览处查看修改后的数据,如下:
②脚本修改文档
通过脚本修改的api格式与直接修改的是一致的
http方法: post方法
请求地址:
http://localhost:9200/test/_doc/1/_update
请求参数
{
"script": {
"lang": "painless",
"inline": "ctx._source.age += 30"
}
}
关键字”script”: 标志以脚本的方式修改文档
“lang”:表示以何种脚本语言进行修改,“painless”表示以es内置的脚本语言进行修改。此外es还支持多种脚本语言,如Python,js等等
“inline”:指定脚本内容 “ctx”代表es上下文,_source 代表文档
查看数据,age增加了5,如下所示:
7.删除文档
http方法: delete
请求地址:
http://localhost:9200/test/_doc/1
操作如下:
到数据浏览处查看数据,已没有id为1的文档了,如下所示:
8.删除索引
①索引概览中删除
点击已有索引的动作,会有个删除操作,如下:
输入删除,点击确定,该索引就被删除了,会返回一个true的提示框
再次查看,就只有一个索引了
②通过api删除
http方法: delete
请求地址:
http://localhost:9200/demo
五、问题总结
1.grunt不是内部或外部命令
使用命令npm start启用服务时,报grunt不是内部或外部命令,如下所示:
解决办法:
将node安装路径,加到环境变量path路径下,重启dos窗口即可。
2.head服务启用失败
使用npm start命令启用服务,报错如下:
解决办法:
3.提示未连接
head服务启用成功,通过localhost:9100访问,提示集群健康值:未连接
解决办法:
需要在elasticsearch.yml文件中增加以下配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
说明:
http.cors.enabled:true 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.allowed.origin:"*" 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
重启服务,再次访问,则恢复正常
小结
全文通读到此,发现ElasticSearch的安装、head插件的安装其实很简单,并不是那么难。es的使用,就需要学习些基本的概念,知识的海洋是渊博的,此次介绍的es的使用,也只是简单的增删改查,属于很浅薄的知识。自己在摸索的时候,也是一点一点学习,百度以前前辈们的博文学习、摸索。只要努力,遇到问题,积极去解决,我相信一定会成功。文中观点,有误之处,欢迎批评指正
Windows下ElasticSearch的Head安装及基本使用的更多相关文章
- Windows下ElasticSearch及相关插件的安装
(1)在官网下载ElasticSearch压缩包.这里我下载的是elasticsearch-1.7.1(下载地址:https://download.elastic.co/elasticsearch/e ...
- windows下elasticsearch安装ik分词器后无法启动
windows下elasticsearch安装ik分词器后启动报如下图错误: 然后百度说是elasticsearch路径有空格,一看果然我的路径有空格,然后重新换个路径就好了.
- 2分钟 windows下sublime text 3安装git插件:
12:35 2015/11/182分钟 windows下sublime text 3安装git插件:推荐博客:http://blog.csdn.net/naola2001/article/detail ...
- 纯windows下制作变色龙引导安装U盘教程
原创教程:纯windows下制作变色龙引导安装U盘教程 支持Mavericks和Yosemite 支持白苹果 目标:windows下制作带 Chamelon变色龙引导的黑苹果安装U盘,支持PC机引导安 ...
- Windows下Oracle 11g的安装
Windows下Oracle 11g的安装 Windows下Oracle 11g的安装: Windows:64位, Oracle 11g版本:win64_11gR2_database_1of2(安装包 ...
- windows下,下载pip安装
windows下,下载pip安装 https://pypi.python.org/pypi/pip#downloads 找到source那个压缩文件,下载下来解压. 参考: windows下面安装Py ...
- Lua在Windows下的配置、安装、运行
Windows下安装.运行Lua! 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1↓ 进入Lua官网:h ...
- Windows下openssl的下载安装和使用
Windows下openssl的下载安装和使用 安装openssl有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.下面对两种方式均进行详细描述. 一.下载和安装ope ...
- Windows下Apache2.2+PHP5安装步骤
Windows下Apache2.2+PHP5安装 初学者在学习PHP的时候可能都会遇到安装Apache和PHP不成功的问题,于是很多开发者便选择了集成包,一键安装好Apache+PHP+MySQL.但 ...
随机推荐
- QQ邮箱打败163邮箱的过程(重视用户体验的结果)
引用 楼主 CKAOS 的回复: 目前负责一个项目,ASP.NET的,做一个网盘系统,别的都弄好了,只差一个下载文件夹的功能未实现,只能在服务器端打包成压缩文件,再发回浏览器.如何直接下载文件夹,不是 ...
- Waveform基于JavaScript的开源多声道音乐波形编辑器
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- Delphi中无边框窗体应用程序使任务栏右键菜单有效的方法
最近在Delphi开发中用到了无边框窗体显示时,无法在任务栏使用右键弹出菜单的情况,经过整理,通过以下方法可以使右键菜单出现: procedure Tfrm_Base.InitSysMenu;var ...
- 如何在Qt中处理(接收/发送)MFC或Windows消息(直接覆盖MainDialog::nativeEvent,或者QApplication::installNativeEventFilter安装过滤器,或者直接改写QApplication::nativeEventFilter)
关于接收: Receive WM_COPYDATA messages in a Qt app. 还有个中文网站: 提问: 如何在Qt中模拟MFC的消息机制 关于发送: 用Qt在Windows下编程,如 ...
- SQL server 2008 防火墙设置
zh以前应为有特殊需求,需要在副武器外连接数据库,需要打开TCPIP服务. 但是因为有防火墙,经常连接不成功. 根据网上的资料总结,写了一个小的bat,来解决这个问题: @echo ========= ...
- Qt浅谈之二十七进程间通信之QtDBus good
一.简介 DBus的出现,使得Linux进程间通信更加便捷,不仅可以和用户空间应用程序进行通信,而且还可以和内核的程序进行通信,DBus使得Linux变得更加智能,更加具有交互性. DB ...
- C++ 王者归来:对编程语言的需求总结为四个:效率,灵活,抽象,生产率(C++玩的是前三个,Java和C#玩的是后两个)
Why C++ ? 王者归来(转载) 因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文<2012 不宜进入的三个技术点>A ...
- Sqoop 简介与安装
一.Sqoop 简介 Sqoop是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从MySQL,Oracle等关系型数据库中导入数据到HDFS.Hive.HBase ...
- Asp.net HttpClient Proxy(Fiddler)
<system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault=& ...
- CCPC2019江西省赛-Problem G.Traffic
题目描述: /*纯手打题面*/ Avin is observing the cars at a crossroads.He finds that there are n cars running in ...