ElasticSearch:是用来做搜索的,类似的还有Solr他们都封装了Lucene不同的是前者是result风格后者是web-service风格,现在前者比较流行。
ElasticSearch是一个实时分布搜索和分析引擎,它让你以前所未有的速度处理大数据成为可能。
它主要作用于全文搜索,结构化搜索,分析,以及这三者的混合使用。
ElasticSearch vs Solr
1.es基本是开箱即用(解压就能用),Solr的安装比较复杂。
2.Solr 利用Zookeeper 进行分布式管理, Elasticsearch自身带有分布式协调管理功能。
3.Solr支持更多格式的数据,比如JSON、XML、CSV,而Elasticsearch 仅支持Json文件格式
4.Solr 官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要Kibana友好支持
5.Solr查询快,但更新索引慢(插入删除慢),适用于电商等查询多的应用
Es建立索引快(即查询慢),即实时性查询快,用于Facebook新浪等搜索。
Solr是传统搜索应用的有利解决方案,但Elasticsearch更实用新兴的实时搜索应用。
6.Solr比较成熟,有一个更大,更成熟的用户、开发和贡献社区,而Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高。
Elasticsearch的下载与安装:(我的版本8.1.0)
下载地址:Download Elasticsearch | Elastic 连kibana一起下下来
ik分词器网址:Releases · medcl/elasticsearch-analysis-ik · GitHub
elasticsearch head下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
所有的东西解压即用(要有前端环境 node.js)
windows下直接解压
默认端口9200 注意跨域问题
启动:双击 bin目录
运行后访问localhost:9200失败
解决方案:修改elasticsearch.yml
然后如下显示代表成功
安装可视化界面es head插件(要node.js环境)
1.下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
2.cnpm install
3.跑起来(npm run start)
结果如下
访问9100端口时
产生原因:(跨域问题) 9100端口不能直接访问9200端口。
解决方法:
在elasticSearch.yaml中添加以下语句
http.cors.enabled: true
http.cors.allow-origin: "*"
解决后
创建索引
初学把索引当成数据库:(表,文档)
我们把head 当成一个数据展示工具 后面的查询用Kibana来做
Kibana
Kibana 是为 Elasticsearch设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。
下载的时候要和es版本一致
elk基本上都是拆箱即用
启动测试
1.解压后的目录
2.启动 点击.bat文件(要在es已经启动完毕的情况下启动kibana)
第一次运行比较慢,要多等一会儿
3.访问http://localhost:5601/
可以在开发工具里写查询
汉化
1.找到kibana的配置文件
加上
i18n.locale: "zh-CN"
保存