elasticsearch学习
介绍
Elasticsearch简介
Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说 Lucene 是 当今最先进,最高效的全功能开源搜索引擎框架。
用通俗的话理解就是:将不同服务器需要的数据,弄成一个文档,放到es中去,当我们去搜索的时候,就是去搜索文档。
es是一个非关系型数据库,和redis一样,redis是一个键值对的数据库,但是es是一个文档类型的数据库。
Elasticsearch的一般特性如下
Elasticsearch可扩展高达PB级的结构化和非结构化数据。(数据量越大效率越高)
Elasticsearch可以用来替代MongoDB和RavenDB等做文档存储。
Elasticsearch使用非标准化来提高搜索性能。
Elasticsearch是受欢迎的企业搜索引擎之一,目前被许多大型组织使用,如Wikipedia,The
Guardian,StackOverflow,GitHub等。
Elasticsearch是开放源代码,可在Apache许可证版本 2.0 下提供
solr与elasticsearch的区别:
https://www.cnblogs.com/blueskyli/p/8326229.html
-
二者安装都很简单;
-
Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
-
Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
-
Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
-
Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。
-
Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。
下载
查版本
1.搜索spring
下载
我们主要是下载elk---- elasticsearch logstash kibana 根据上图的版本选择
https://www.elastic.co/cn/downloads/elasticsearch
点击past releases
上面的三个下载完了以后,还需下载 ik分时器 head插件
ik分时器
https://github.com/medcl/elasticsearch-analysis-ik找到版本,点击download,注意不要下载到源码,下载好的里面是有插件的。
什么是ik分时器:
- 把一句话分词
- 如果使用中文:推荐ik分时器
- 两个分词算法:ik_smart(最少切分),ik_max_word(最细粒度划分)
和head插件https://github.com/mobz/elasticsearch-head 里面只要5.0.0版本的,下载即可。
elk开启
开启elasticsearch
解压,点击bin -> elasticsearch.bat
浏览器输入
localhost:9200 测试端口
you konw,for search就表示成功了
服务端口 9300
开启kibana
解压,点击bin -> kibana.bat 输入命令localhost:5601
开启head插件
解压,输入命令行 npm install-----> npm run start
输入9100端口 打开界面
如果出现未连接 说明存在跨域问题 在elasticsearch-7.6.2\config里面输入 #解决跨域的问题: http.cors.enabled: true http.cors.allow-origin: "*"
让elasticsearch就有分词功能 解压ik分时器 将里面的文件夹和jar包复制到elasticsearch-7.6.2\plugins里面,建一个ik文件夹
kibana测试
# 最少切分
GET _analyze
{
"analyzer": "ik_smart",
"text": "我是社会主义接班人"
}
# 最大切分
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我是社会主义接班人"
}
实现对索引的增删改查
PUT localhost:9100/索引名称/类型名称/文档id 创建文档(指定id)
POST localhost:9100/索引名称/类型名称 创建文档(随机id)
POST localhost:9100/索引名称/文档类型/文档id/_update 修改文档
DELETE localhost:9100/索引名称/文档类型/文档id 删除文档
GET localhost:9100/索引名称/文档类型/文档id 查询文档通过文档id
POST localhost:9100/索引名称/文档类型/_search 查询所有文档
#创建索引
PUT /userdb/user/1
{
"id":1,
"name":"老郭",
"age":18,
"sex":"女"
}
#修改索引 (记得加一个doc)
POST /userdb/user/1/_update
{
"doc":{
"id":"1",
"name":"小ge哥",
"age":18,
"sex":"男"
}
}
#删除文档
DELETE /userdb/user/1
#查询所有文档
POST /userdb/user/_search
Logstash介绍
Logstash是一个开源数据收集引擎,具有实时管道功能 , 可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。 Logstash作为Elasicsearch常用的实时数据采集引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源,是Elastic Stack 的重要组成部分。
开始(在本地运行)
解压,在bin目录下面加入 mysql-connector-java-8.0.13.jar 这个jar包
再加入mysql_info.conf这个文件
输出到多种输出源,是Elastic Stack 的重要组成部分。
[外链图片转存中…(img-1vD4iH3A-1615859737135)]
开始(在本地运行)
解压,在bin目录下面加入 mysql-connector-java-8.0.13.jar 这个jar包
再加入mysql_info.conf这个文件
执行–> 在bin目录下面输入命令 logstash -f mysql_info.conf即可