ELK技术栈之——分布式搜索--Elasticsearch+Kibana(二)

ELK技术栈之——分布式搜索--Elasticsearch+Kibana_金蒂-CSDN博客一、背景关于ELK的技术栈大家一定不陌生,EKL分别为 分布式搜索Elasticsearch、日志的收集LogStash、提供友好界面的Kibana,ELK技术栈被广泛应用在日志数据分析、实时监控等领域‘。二、初识Elasticsearchelasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。我们为什么要学习Elasticsearch?看一下全球搜索技术排行:三、Elasticsearch与传统数据库搜索对比搜索方式:ELhttps://blog.csdn.net/weixin_44693109/article/details/122441355前言:上一篇我们介绍了关于Elasticsearch和Kibana的安装 这一篇简单介绍一下关于Elasticsearch的使用

Elasticsearch起初在学习的时候也是查阅了相关官网资料和一些相关视频   总结了一些个人笔记方分享大家

相关文档资料:ELK中文手册
                        Elasticsearch官网中文手册

目录

背景:

1.安装IK分词器——在线安装

2.安装IK分词器——离线安装

        2.1 IK分词器的两种分词模式

        2.2 IK分词器添加扩展词库

        2.3 扩展——词库热更新等

3.索引库的概念

扫描二维码关注公众号,回复: 15943726 查看本文章

4.索引库的增删改查 

        4.1创建索引库

        4.2查看-删除 索引库

        4.3修改索引库

5.文档的增删改查

        5.1 添加文档

         5.2查看文档 删除文档

         5.3修改文档(包括全量修改和增量修改)


背景:

es在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入內容分词。但默认的分词规则对中文处理并不友好 所以我们在使用Elasticsearch的时候最好安装一个分词器

1.安装IK分词器——在线安装

#进入容器内部
docker exec-it elasticsearch/bin/bash
在线下载并安装
bin/elasticsearch-plugin install
https://github.com/medc1/elasticsearch-analysiik/releases/download/v7.12.1/e1asticsearch-analysis-ik-712 1. zip
#退出exlt重启容器
exit
#重启容器
docker restart elasticsearch

2.安装IK分词器——离线安装

安装插件需要知道 elasticsearch的 Iplugins(数据卷)目录位置,而我们用了数据卷挂载,因此需要查看 elasticsearch的数据卷目录,通过下面命令查看:
docker volume inspect es-plugins

将我们下载好的压缩文件解压  上传到iplugins目录下
重启容器
docker restart es
#查看es日志
docker logs -f es

        2.1 IK分词器的两种分词模式

                K分词器包含两种模式
                ik_ smart:最少切分——粗粒度
                ik_max_word:最细切分——最细粒度(内存占用更多)

        2.2 IK分词器添加扩展词库

              IK分词器既然可以做到对语句进行分词 那么 这个的底层一定有一个类似于词典的东西,那么问题来了,随着我们越来越多的网络名称,这个词典一定有不能分辨的词出现,这个时候就需要对这个词典进行扩展词库了

==========

要拓展k分词器的词库,只需要修改一个k分词器目录中的 config目录中的 analyzer.cfg.xml文件

        2.3 扩展——词库热更新等

        中文社区:ik分词器 - Elastic 中文社区

3.索引库的概念

mapping类似于MySQL中数据的约束类型  ES中也有一套类似的规范 

常见的mapping属性包括:

  • type:字段数据类型,常见的简单类型有:

       - 字符串:text(可分词文本)keyword(不可分词文本:国家 品牌)

       - 数值:long、integer、short、byte、double、float

        - 布尔类型:boolean

        - 日期:date

        - 对象:object

  • index:是否创建索引
  • analyzer:使用哪一种分词器
  • properties:该字段的子字段

在mapping中没有数组的概念  但是可以同一种类型的词出现多次

4.索引库的增删改查 

        4.1创建索引库

ES中通过 Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和 mapping的DSL语法如下

# 创建索引库
PUT /yibai
{
  "mappings":{
    "properties": {
      # 信息 text类型  分词类型为ik_smart
      "info":{
        "type": "text",
        "analyzer": "ik_smart"
      },
      # 邮箱 keyword类型 不创建索引(不写默认为创建)
      "email":{
        "type": "keyword",
        "index": false
      },
      #姓名 object类型  姓名下边还有分类  第一个字  最后一个字  类型都是keyword
      "name":{
        "type": "object",
        "properties": {
          "firstName":{
            "type":"keyword"
          },
          "lastName":{
            "type":"keyword"
          }
        }
      }
    }
  }
}
############注意  DSL语句中是不允许写注释的   这里为了方便理解加入代码内部注释##########

        4.2查看-删除 索引库

//查看索引库语法:
GET / 索引库名
GET / yibai
//删除索引库语法:
DELETE / 索引库名
DELETE / yibai

        4.3修改索引库

在es语法中是禁止修改索引库的 因为一开始已经创建好了倒排索引 修改完一个字段的话就会导致原来的倒排索引失效

索引库和 mapping-旦创建无法修改,但是可以添加新的字段,语法如下:

注意:新的字段名称一定不能和原来的重复 不然es会认为你在修改 就会报错

# 修改索引库(添加新字段)
PUT /yibai/_mapping 
{
  "properties" :{
    "age":{
      "type":"integer"
    }
  }
}

5.文档的增删改查

        5.1 添加文档

POST /索引库名/_doc/文档id
{
	"字段1":"值1",
    "字段2":"值2",
    "字段2":{
    	"子属性1":"值3",
        "子属性2":"值4"
    }
}

         5.2查看文档 删除文档

//   _doc 固定写法
GET /索引库名/_doc/文档id
//例如:
GET /yibai/_doc/1
    ====================分割线=================
// 删除文档
DELETE /索引库名/_doc/文档id

version属性:每次进行数据操作都会对version属性+1

         5.3修改文档(包括全量修改和增量修改)

               全量修改 

PUT /索引库名/_doc/文档id
{
	"字段1":"值1",
    "字段2":"值2"
}
============================
PUT /yibai/_doc/2
{
  "age":23,
  "info":"这里被修改了",
  "email":"[email protected]",
  "name":{
    "firstName":"金",
    "lastName":"蒂"
  }
}
ps1:全量更改需要将所有的字段都加上,然后把需要改的进行更改,不然就会把没写上的字段删除
ps2:如果要查询的文档id没有的话  更新就会变成添加文档

更新

添加

         增量修改

#局部修改文档字段
POST /yibai/_update/1
{
  "doc": {
    "info":"修改内容"
  }
}
ps1:修改指定字段的内容需要将索引库后边的_doc改为_update  
ps2:与全局修改不同的是不需要将所有字段都写上 但是需要加在"doc"下进行字段修改

 总结:针对与ES的操作主要是对索引库和文档的操作  基本的增删改查和需要注意的地方就是这些了  记住一些关键字还是比较简单的

猜你喜欢

转载自blog.csdn.net/weixin_44693109/article/details/122555280
今日推荐