5分钟搭建好ElasticSearch开发环境

基于ElasticSearch 7

ElasticSearch简介

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

官网

https://www.elastic.co/cn/elasticsearch/

使用****案列

  • 2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。 “GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码”* 维基百科:启动以elasticsearch为基础的核心搜索架构* SoundCloud:“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”* 百度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据* 新浪使用ES 分析处理32亿条实时日志* 阿里使用ES 构建挖财自己的日志采集和分析体系

原理

ElasticSearch的底层是Lucene,参考2020-12-20_5分钟了解搜索引擎Lucene的原理.md

和数据库对比

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

安装JDK

注意ElasticSearch最低要求JDK1.8,Oracle下载JDK太麻烦,下载个JDK还让登录,这里推荐个镜像站,各种版本都有:嗖嗖下载java jdk镜像 JDK装好后第一件事情是设置环境变量,环境变量的作用是让你在任何目录下都可以调用Java命令:参考

  1. 打开环境变量设置窗口:右键此电脑 > 属性 > 高级系统设置 > 环境变量 > 关注点在于下面的系统变量
  2. 新建JAVA_HOME:变量名为JAVA_HOME,变量值为你的JDK安装目录,类似于:C:\Program Files\Java\jdk1.8.0_31
  3. 找到系统变量里面的Path,点击编辑,新增两条:%JAVA_HOME%\bin,%JAVA_HOME%\jre\bin
  4. 新建CLASSPATH:变量名为CLASSPATH,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,注意最前面的一个点表示当前目录,不要遗漏
  5. 验证:WIN+R打开CMD窗口,输入java、java -version、javac均有回显说明环境变量设置成功!

注意一定要设置环境变量,否则ES启动不了!

安装ElasticSearch

  1. 去官网下载:https://www.elastic.co/cn/downloads/elasticsearch
  2. 解压到你喜欢地方,注意安装文件夹最好不要带有空格,否则后面的IK分词器可能启动不成功
  3. 双击bin/elasticsearch.bat
  4. 打开浏览器访问http://localhost:9200/,如果能访问则安装成功

设置允许跨域(一些可视化界面需要) 编辑conf/elasticsearch.yml,这是一个空配置文件,里面全是注释,在文件最后增加如下内容

http.cors.enabled: true
http.cors.allow-origin: "*"

安装IK分词器(中文分词)

  1. 下载:https://github.com/medcl/elasticsearch-analysis-ik/releases
  2. 解压到plugins/elasticsearch-analysis-ik-7.10.1文件夹

IK提供了两个分词算法ik_smart和ik_max_word,其中ik_smart为最少切分ik_max_word为最细粒度划分,测试IK安装是否成功

GET http://127.0.0.1:9200/_analyze{"analyzer": "ik_smart","text": "我是程序员"
}

添加测试数据

2020-12-30所使用的版本为elasticsearch-7.10.1-windows-x86_64

创建索引

用postman或者任何你喜欢的工具,创建索引的同时设置了mapping、分片数量和复制数量,分片和复制默认数量分别是5和1

PUT http://127.0.0.1:9200/blog1{"settings":{"number_of_shards":3,"number_of_replicas":1},"mappings": {"properties": {"id": {"type": "long"},"title": {"type": "text","analyzer":"ik_smart"},"content": {"type": "text","analyzer":"ik_smart"}}}
}

创建文档

POST http://127.0.0.1:9200/blog1/_doc/1{"id":1,"title":"ElasticSearch是一个基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。"
}

查询文档

简单查询一下,看看是否创建成功

GET http://127.0.0.1:9200/blog1/_doc/1{"_index": "blog1","_type": "_doc","_id": "1","_version": 3,"_seq_no": 2,"_primary_term": 1,"found": true,"_source": {"id": 1,"title": "[xxxxx]ElasticSearch是一个基于Lucene的搜索服务器","content": "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。"}
}

根据query_string查询

POST http://127.0.0.1:9200/blog1/_doc/_search
{"query": {"query_string": {"default_field": "title","query": "钢索"}}
}

安装可视化界面

ES可视化界面有如下几种

  • elasticsearch-head* ElasticHD* Dejavu

下面一个一个看

elasticsearch-head

需要nodejs环境,上古界面,功能单一,不推荐

ElasticHD

项目地址:https://github.com/360EntSecGroup-Skylar/ElasticHD

特点

  • 二进制单文件,安装方便* 界面炫酷* SQL转ES查询小工具挺实用* 目前(2020-12-30)监控还在完善

安装步骤 其实就是一个单二进制文件

  1. 下载压缩包并解压:https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/
  2. 启动:./ElasticHD.exe -p 127.0.0.1:9800
  3. 访问http://127.0.0.1:9800/
  • Dashboard看着还挺舒服

  • 查询界面

  • 索引

  • SQL转ES查询小工具还挺实用

Dejavu

项目地址:https://github.com/appbaseio/dejavu/

特点:

  • 安装方式多样,支持docker、Chrome扩展、甚至在线体验* 界面更加现代化* 有编辑模式,直接能修改内容* 数据可以导入导出,支持CVS、JSON格式

在线体验地址:https://dejavu.appbase.io,在顶部填入主机http://127.0.0.1:9200和上面创建的索引blog1点击右边Connect即可连接

  • 数据浏览区,界面非常直观

  • 数据导入,由于要登陆,没有过多尝试,感兴趣的伙伴可以尝试下

  • 通用查询窗口

  • 查询预览区

  • Dejavu的作者还对目前存在的UI进行了比较

参考

  • https://www.codesheep.cn/2018/10/30/es-visualization/

5分钟搭建好ElasticSearch开发环境相关推荐

  1. [保姆教程] [Python] 3分钟搭建Python远程开发环境

    目录 简介 在Ubuntu上配置Python环境 安装Python 查看系统自带的python版本 安装自定义版本(例如使用3.7版本) 安装PIP 安装虚拟环境 Python环境验证 在VSCode ...

  2. Xamarin Andro教程搭建Xamarin Androidid开发环境(一)

    Xamarin Andro教程搭建Xamarin Androidid开发环境(一) "工欲善其事,必先利其器".对于程序员来说,编程的环境就是其手中的利器.如果没有一个合适方便的编 ...

  3. 搭建数字图像处理开发环境(Python+pycharm+opencv)

    搭建数字图像处理开发环境(Python+pycharm+opencv) 安装python 安装pycharm 安装包 pycharm安装过程 安装opencv 注: 后续 安装python 可以在这里 ...

  4. 在windows上搭建React Native开发环境

    最近要学习React Native,但是在window上搭建开发环境的时候遇到了些问题,以至于一直没有搭建好开发环境. React Native相关项目及文档: react-native的GitHub ...

  5. 第二课 如何在WINDOWS环境下搭建以太坊开发环境

    [本文目标] 根据本文指导,可以在WINDOUWS环境下完成以太坊智能合约部署前的比较环境准备. [技术收获] 如何在WINDOW(笔者以WINDOWS 10为例)环境搭建以太坊开发环境,按照以下安装 ...

  6. Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境

    Android群英传神兵利器读书笔记--第一章:程序员小窝--搭建高效的开发环境 目录 1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程 ...

  7. vscode读linux源码,vscode搭建linux内核开发环境

    vscode在linux下搭建内核驱动开发环境 一.前言 Souce insight是一个阅读.开发linux内核驱动模块的好工具,但是Source insight是收费的软件,而且没有原生linux ...

  8. Eclipse和PyDev搭建完美Python开发环境(Windows篇)(转)

    摘要:本文讲解了用Eclipse和PyDev搭建Python的开发环境. 十一长假在家闲着没事儿,准备花点时间学习一下Python. 今儿花了一个下午搭建Python的开发环境,不禁感叹----开源的 ...

  9. 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

最新文章

  1. 阿拉德之怒显示服务器错误,阿拉德之怒网络异常怎么办 安装失败怎么办
  2. 【剑指offer-Java版】19二叉树的镜像
  3. Matlab绘制包含双Y轴的图
  4. mysql历史命令_MySQL交互技巧
  5. 08年1月Gartner商务智能平台魔法四分区
  6. Python打卡第四周
  7. 解决:If the number of processors is expected to increase from one, then you should configure the numbe
  8. 硬件基础 —— 光耦
  9. Apache 的 httpd.conf 详解(很实用)
  10. Flutter 深度学习 — 动画(补间动画、Hero动画、交错动画)
  11. MATLAB Radon检测图像,初学radon变换 检测直线 matlab程序实现
  12. 牛客多校第九场 Niuniu is practicing typing.(kmp优化)
  13. java sub_java调用zeromq PUB-SUB模式
  14. vue 创建桌面应用
  15. 游戏客户端安全方案。
  16. 用尽可能多的字数介绍Leaky ReLU激活函数
  17. php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...
  18. TYPE1码本 一【5G笔记】
  19. Delegate: What is this? ----什么是Delegate(委托)
  20. 长铗:搭积木无法建筑DeFi摩天楼,Bytom用工程思维构建MOV宇宙

热门文章

  1. Linux操作系统(一)——Unix、Linux、Ubuntu之间的关系
  2. 信息融合之Add与Concat,你了解它们吗?
  3. LU分解法(又名Doolittle分解法,直接三角分解法)C++实现
  4. poi解决excel 03 与 07不兼容的问题
  5. elementUI el-table设置fixed后,竖向滚动条滚动到底部表格错位的问题(修改源码)
  6. 金蝶shr入职、转正、离职单据反审批出错,改单据状态对应的表
  7. 提高记忆力的 10 种记忆技巧和工具
  8. 计算机主机故障排除,常见的电脑硬件故障排除
  9. BOM制作系列之二:BOM合并
  10. php时间戳转换成日期格式,php时间戳如何转换为日期格式