ElasticSearch学习1

导读:本篇文章讲解 ElasticSearch学习1,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

文章目录

1. 其他工具

自身带有分布式管理

使用zookeeper分布式管理

工具

Lucene:信息检索工具包 – Java开源 – 非搜索引擎系统

ElasticSearch:基于Lucene做的方法增强以及封装 – 通过简单Restful API获取数据 – 仅支持JSON

Solr:基于Lucene全文搜索服务器-可独立运行在Tocmat、Jetty这些servlet服务器中 – 通过WebService API进行获取数据 – 数据支持JSON、XML、CSV等

ELK技术【日志数据分析】:ElasticSearch搜索、Logstash日志采集、Kibana数据分析以及可视化

2. 概述

概念

功能: 用于全文、结构化搜索以及分析

官网: https://www.elastic.co/

下载地址: https://www.elastic.co/cn/start

历史版本下载地址: https://www.elastic.co/cn/downloads/past-releases

在这里插入图片描述

收集、清洗数据

搜索、存储数据

分析、展示数据

ELK(日志分析架构技术栈)= 数据分析、日志采集

Logstash:ELK的中央数据流引擎-从不同目标(文件、数据存储、MQ)进行收集数据

ElasticSearch:基于Lucene做的方法增强以及封装的交互实时搜索平台框架

Kibana::ElasticSearchd的数据友好显示以及实时分析的功能 – 各种图表分析展示

概念

索引(indices):数据库

类型(types):库中的表

文档(documents)::表中的数据

ElasticSearch特点

1. 一个集群至少一个节点(ElasticSearch进程),

2. 创建一个索引(数据库)默认会创建5个分片,1个副本(复制分片),主分片与复制分片不会在同一个节点

3. 分片:包含Lucene索引、倒排索引的文件目录(不扫描全部文档,使得知道哪些文档包含特定的关键字,快速的全文搜索)

在这里插入图片描述

倒排索引

每个文档拆分成独立的单词、词条,创建一个包含所有不重复的词条的排序列表,列出每个词条出现在哪个文档

在这里插入图片描述

在这里插入图片描述



权重计算
在这里插入图片描述



在这里插入图片描述

3. 使用

3.1 ElasticSearch-HelloWorld

3.1.1 配置文件-关闭安全认证、开启跨域

ElasticSearch目录\config\elasticsearch.yml
在这里插入图片描述


ElasticSearch安装目录\config\elasticsearch.yml

# 关闭ssl访问


# 添加配置
http.cors.enabled: true
http.cors.allow-origin: "*"

3.1.2 启动

双击ElasticSearch目录\bin\elasticsearch.bat
在这里插入图片描述

在这里插入图片描述

3.1.3 访问9200端口

http://127.0.0.1:9200/
在这里插入图片描述

3.1.4 Rest访问约束规定

概念
method url地址 描述
GET localost:9200/_cat/xxxx 获取ElasticSearch很多的其他信息 – 通过kibana自己尝试一下
GET localost:9200/_cat/indices 获取ElasticSearch所有的索引库信息
GET localost:9200/_cat/_health 获取ElasticSearch健康信息
PUT localost:9200/索引名称 创建索引,请求体为索引字段结构
GET localost:9200/索引名称 获取索引信息
PUT localhost:9200/索引名称/_doc/文档id 创建文档(指定文档id)
POST localhost:9200/索引名称/_doc 创建文档(随机文档id)
POST localhost:9200/索引名称/_doc/文档id/_update 修改文档
DELETE localhost:9200/索引名称/ 删除索引(表)
DELETE localhost:9200/索引名称/_doc/文档id 删除文档
GET localhost:9200/索引名称/_doc/文档id 查询文档通过文档id
POST localost:9200/索引名称/_search 查询所有数据
get localost:9200/索引名称/_search?q=字段:字段值 查询所有数据
测试
获取 – ElasticSearch所有的索引库信息
get http://127.0.0.1:9200/_cat/indices

在这里插入图片描述

获取 – ElasticSearch健康信息
get http://127.0.0.1:9200/_cat/health

在这里插入图片描述

创建库(索引)- 数版本退化到这个就是表
put  http://127.0.0.1:9200/lrc_blog

在这里插入图片描述

创建库(索引)- 定义索引字段结构
http://127.0.0.1:9200/lrc_blog2

//请求体

{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "integer"
      },
      "birthday": {
        "type": "date"
      }
    }
  }
}

在这里插入图片描述

在这里插入图片描述

获取 – 索引信息
http://127.0.0.1:9200/lrc_blog2

在这里插入图片描述

新建文档 – 必须是_doc
put 127.0.0.1:9200/lrc_blog/_doc/1


{
  "title":"雪中悍刀行",
  "date":"2020-11-05",
  "content":"关于庙堂权争与刀剑交错的江湖"
}


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


查询文档 – 通过ID
get /lrc_blog/_doc/2

在这里插入图片描述

修改文档
post /lrc_blog/_doc/文档ID/_update


//请求体
{
    "doc": {
        "age": "1000",
        "name": "修改文档记录"
    }
}

在这里插入图片描述

在这里插入图片描述

文档修改成功
在这里插入图片描述

查询文档 – 通过条件


方式1

post http://127.0.0.1:9200/lrc_blog/_search

//请求体
{
    "query": {
        "multi_match" : {
            "query" : "科技",
            "fields" : ["title"]
        }
    }
}

在这里插入图片描述


方式2 – 精确匹配

get lrc_blog/_search?q=title:雪中悍刀行222

在这里插入图片描述


3.2 ElasticSearch-Head可视化Vue界面

下载地址: https://github.com/mobz/elasticsearch-head/releases

Vue项目正常启动即可

步骤1
//拉取项目
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head

//安装依赖
npm install

//启动head项目
npm run start

//打开浏览器
open http://localhost:9100/

可见显示未连接前端项目9100访问不了elasticSearch9200的东西,需要elasticSearch9200放开跨域,允许所有域名可访问
在这里插入图片描述

步骤2 – ElasticSearch设置跨域

ElasticSearch安装目录\config\elasticsearch.yml

# 关闭ssl访问


# 添加配置
http.cors.enabled: true
http.cors.allow-origin: "*"

在这里插入图片描述

步骤3 – 重启ElasticSearch服务
步骤4 – 刷新浏览器地址:http://localhost:9100/

在这里插入图片描述

步骤5 – 新建索引(初学就先把ES当成数据库)

概念

索引:数据库

类型:库中的表

文档::表中的数据

3.3 Kibana – 可视化日志界面、日志各种图表分析展示 – 磁盘空间已经使用95%则不能打开Kibana页面

配置

kibana安装目录\config\kibana.yml

//将Kibana界面改成中文显示
i18n.locale: "zh-CN"

在这里插入图片描述

解压、启动

Kibana安装目录\bin\kibana.bat

访问

http://localhost:5601/

解决 – This Elastic installation has strict security requirements enabled that your current browser does not meet.

禁用谷歌全部插件、我也不知道是哪个插件引起的,所有我要一个没任何浏览器的插件进行打开



装有很多插件的Edge浏览器
在这里插入图片描述



啥插件都没装的星愿浏览器
在这里插入图片描述

使用

在这里插入图片描述

3.4 IK分词器 – 中文分词

概述

作用: 即把一段中文或者别的划分城一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱狂神”会被分为”我”,“爱”,”狂”,”神”,这显然是不符合要求的,所以我们需要安装中文分词器k来解决这个问题。

下载: https://github.com/medcl/elasticsearch-analysis-ik/

IK分词算法

1. ik_smart:最小切分

2. ik_max_word:最细粒度切分

简单使用
1. 下载解压目录放置在ElasticSearch目录的plugin里面

在这里插入图片描述

在这里插入图片描述

2. 重启ElasticSearch

在这里插入图片描述

3. 查看是否加载成功

在这里插入图片描述

elasticsearch-plugin list

在这里插入图片描述

4. 分词测试

在这里插入图片描述

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "我爱中国,中国共产党,嗯星,csdn"
}


GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "我爱中国,中国共产党,嗯星,csdn*"
}

在这里插入图片描述

在这里插入图片描述

5. 有些词不被ik认为是一个单词,如【嗯星】被拆开了,所以我们需要自己定义什么单词为一个词语

在这里插入图片描述

在这里插入图片描述

6. 重启ElasticSearch – 可见已经将【嗯星】作为单词进行分词

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/46404.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!