ElasticSearch是一个开源的分布式搜索和分析引擎。它提供实时分布式搜索功能,可以索引和搜索大量的结构化和非结构化数据。Elasticsearch以其速度、可伸缩性和处理复杂查询的能力而闻名。它常用于日志分析、全文搜索、文档搜索和数据分析等领域。使用ElasticSearch的著名案例:
-
Netflix:Netflix使用Elasticsearch来提供其用户界面的搜索和建议功能。它帮助用户快速找到他们想要观看的内容,并提供个性化的推荐。
-
Uber:Uber使用Elasticsearch来处理其大量的实时地理位置数据。它帮助Uber在地图上显示司机和乘客的位置,并计算最佳的行程。
-
GitHub:GitHub使用Elasticsearch来提供其代码搜索功能。它帮助开发人员快速找到他们需要的代码和项目。
-
Facebook:Facebook使用Elasticsearch来支持其Graph Search功能。这个功能允许用户通过搜索来查找与他们相关的内容和人。
-
Stack Overflow:Stack Overflow使用Elasticsearch来提供其问题和答案的搜索功能。它帮助开发人员快速找到解决方案和有关编程问题的帮助。
本文记叙在Windows环境下安装相关程序出现的问题。
一、安装运行ElasticSearch
1.1安装ElasticSearch
前往官网 elasticsearch官网下载 。
1.2运行ElasticSearch
下载之后, 解压到制定文件夹。解压之后,执行bin下面的elasticsearch.bat脚本(最好在cmd窗口下执行,可以看清失败日志)
1.2.1安装出现“此时不应有 \java\jdkXX”
启动之后, 发现报错,此时不应有 \java\jdk1.8.0_20
最新版本的Elasticsearch是自带jdk的,但程序还是会检查系统的jdk环境,真是多管闲事。在确定java环境没有配错的情况下,查询才知道,自己的jdk安装的路径带有空格(安装在“Program Files”子目录下)。
需要注意的是:第一次启动的时候,控制台会输出默认账户已经密码,注意保存起来。如果忘记密码,运行安装目录下的重置密码脚本
启动成功之后,在浏览器输入:http://localhost:9200/ 。运行如下:
二、安装运行elasticsearch-head
2.1安装elasticsearch-head
elasticsearch-head 是一个用于浏览和管理 Elasticsearch 集群的 Web 界面工具。它提供了可视化的界面,可以展示索引、文档、节点和集群的信息,并且支持对数据进行简单的搜索和查询。elasticsearch-head 还提供了一些管理功能,如创建和删除索引、添加和删除文档等。
2.1.1源码安装
如果本地有nodejs环境,则选择从源码下载安装。
git clone git://github.com/mobz/elasticsearch-head.git
2.1.2插件下载
或者,在chrome商店下载,搜索elasticsearch-head插件(笔者chrome商店无法访问)
2.2运行elasticsearch-head
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/
2.2.1运行显示 “集群健康值: 未连接”
浏览器运行 http://localhost:9100/,显示 “集群健康值: 未连接”
打开浏览器调试模式,出现跨域受限提示 。
elasticsearch.yml配置加上允许跨域参数
# ---------------------------------- head plugin -----------------------------------
# head等插件访问es。设置参数的时候[key: value]中,冒号后面要有空格
http.cors.enabled: true
http.cors.allow-origin: "*"
2.2.2运行发现 “未授权”异常
重启之后,发现异常仍未解决, 打开浏览器调试模式,出现未授权提示 。
修改浏览器参数,把账户密码带上 http://localhost:9100/?auth_user=dev&auth_password=123456
运行正常了!
三、安装运行kibana
Kibana是一个用于数据可视化和分析的开源工具。它是Elasticsearch的一个组件,用于在Elasticsearch索引中搜索、分析和互动式地可视化数据。Kibana提供了丰富的图表和图形,可以帮助用户更好地理解和分析数据,从而支持数据驱动的决策和洞察力的发现。Kibana还允许用户创建和保存自定义的仪表板,以便随时查看和监控数据。
3.1安装kibana
前往官网 kibana官网下载 。下载解压则可。
3.2运行kibana
编辑config目录下kibana.yml。修改以下配置
# =================== System: Elasticsearch ===================
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://localhost:9200"]
# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
elasticsearch.username: "dev"
elasticsearch.password: "123456"
启动bin目录下的kibana.bat脚本
3.2.1出现超级用户不允许操作异常
创建新账号,并授权
elasticsearch-users.bat useradd dev
elasticsearch-users.bat roles -a superuser dev
elasticsearch-users.bat roles -a kibana_system dev
重新启动,正常!
四、安装使用IK分词器
IK 分词器是一个专门针对中文文本的分词工具,用于将一段中文文本切分成单个的词语。它是基于 Java 开发的,可以与 Elasticsearch 以及其他一些中文处理工具集成使用。支持用户自定义词典,包括拓展词/停用词。
4.1安装IK分词器
官网下载 ik分词器下载
解压后,把整个文件夹复制到ES的插件目录,如下所示
4.2运行IK分词器
4.2.1解决IKAnalyzer.cfg.xml文件访问权限不足问题
重启ES,出现异常
access_control_exception', 'access denied ("java.io.FilePermission" “XX\ElasticSearch\elasticsearch-8.12.2\plugins\ik\config\IKAnalyzer.cfg.xml” “read”)。
一开始觉得是文件权限不够,查看之后发现文件读写权限都有。搜索之后,发现是ES的安装包路径有空格(跟前面jdk问题一样,都是因为安装在“Program Files”子目录下)。
把ES的解压目录重现换个文件位置,重启,没有出现问题。
4.2.2在线测试
浏览器输入 http://localhost:5601/,进入开发者工具。
五、安装总结
第一次安装ElasticSearch开发环境是非常折腾的,总会出现各种问题,一篇安装教程不可能应付所有出现的异常问题。对了,小伙伴安装的时候记得全部保持同一个版本号,避免出现版本不兼容问题。