大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务

news2024/11/29 12:32:54

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(正在更新…)

章节内容

上节我们完成了如下的内容:

  • ES-head 插件配置使用
  • Kibana 插件配置使用

在这里插入图片描述

索引操作

创建索引库

Elasticsearch采用Rest风格API,因此其API就是一次HTTP请求,你可以用任何工具来发起HTTP请求。
语法:

PUT /索引名称
{
  "settings": {
    "属性名": "属性值"
  }
}

settings:就是索引库设置,其中可以索引库的各种属性,比如分片数、副本数等。目前我们不设置,先默认即可。
示例:

PUT /wzkicu-index

执行结果如下图:
在这里插入图片描述

判断索引是否存在

单个索引

语法:

GET /索引名称

示例:

GET /wzkicu-index

执行结果如下图所示:
在这里插入图片描述

多个索引

语法:

GET /索引名称1,2,3,4,5...

示例:

GET /wzkicu-index,wzkicu,wzk

执行结果如下图所示:(这里有不存在的索引,所以404了)
在这里插入图片描述

所有索引

方式1:

GET _all

执行结果如下图所示:
在这里插入图片描述
方式2:

GET /_cat/indices?v

执行结果如下图所示:
在这里插入图片描述
这里的health列,表示:

  • 绿色:索引的所有分片都正常分配
  • 黄色:至少有一个副本没有得到正确的分配
  • 红色:至少有一个主分片没有得到正常的分配

打开索引

语法:

POST /索引名称/_open

示例:

POST /wzkicu-index/_open

执行结果如下图:
在这里插入图片描述

关闭索引

语法:

POST /索引名称/_close

示例:

POST /wzkicu-index/_close

执行结果如下图:
在这里插入图片描述

删除索引

语法:

DELETE /索引名称1,2,3,4,5...

示例:

DELETE /wzkicu-index

执行结果如下图所示:
在这里插入图片描述

IK分词器

下载项目

官方地址在这里,是GitHub开源的项目,安装方式很多,我这里就直接用官方的方式安装了:

https://github.com/infinilabs/analysis-ik/releases/tag/Latest

页面是这样的:
在这里插入图片描述

安装插件

cd /opt/servers/elasticsearch-7.3.0/
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.3.0

执行结果如下图所示,我们需要重启ES:
在这里插入图片描述

重启ES

重启过程,启动完毕:
在这里插入图片描述

分词测试

IK分词器两种分词模式:

  • ik_max_word 模式 (最常用)(会将文本最细粒度的拆分)
  • ik_smart 模式 (会做最粗粒度的拆分)

暂时不细追究语法,先学习测试,再后续研究。

ik_max_word

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "山东省青岛市黄岛区"
}

我们的到的结果是:

{
  "tokens": [
    {
      "token": "山东省",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "山东",
      "start_offset": 0,
      "end_offset": 2,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "省",
      "start_offset": 2,
      "end_offset": 3,
      "type": "CN_CHAR",
      "position": 2
    },
    {
      "token": "青岛市",
      "start_offset": 3,
      "end_offset": 6,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "青岛",
      "start_offset": 3,
      "end_offset": 5,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "市",
      "start_offset": 5,
      "end_offset": 6,
      "type": "CN_CHAR",
      "position": 5
    },
    {
      "token": "黄岛区",
      "start_offset": 6,
      "end_offset": 9,
      "type": "CN_WORD",
      "position": 6
    },
    {
      "token": "黄岛",
      "start_offset": 6,
      "end_offset": 8,
      "type": "CN_WORD",
      "position": 7
    },
    {
      "token": "区",
      "start_offset": 8,
      "end_offset": 9,
      "type": "CN_CHAR",
      "position": 8
    }
  ]
}

执行的结果如下图所示:
在这里插入图片描述

ik_smart

POST _analyze
{
  "analyzer": "ik_smart",
  "text": "山东省青岛市黄岛区"
}

执行的结果是:

{
  "tokens": [
    {
      "token": "山东省",
      "start_offset": 0,
      "end_offset": 3,
      "type": "CN_WORD",
      "position": 0
    },
    {
      "token": "青岛市",
      "start_offset": 3,
      "end_offset": 6,
      "type": "CN_WORD",
      "position": 1
    },
    {
      "token": "黄岛区",
      "start_offset": 6,
      "end_offset": 9,
      "type": "CN_WORD",
      "position": 2
    }
  ]
}

执行的结果如下图所示:
在这里插入图片描述

提出问题

在实际环境中,有很多时候并不能够准确的理解我们断词断句,有时候有些词我们想要它拆分,有些词我们希望它不拆分。
那我们怎么办呢?

词典使用

扩展词

不进行分词,告诉引擎这是一个词。

停用词

有些词在文本中出现的频率非常高,但对本文的语义会产生很大的影响,例如:呢、了、啊等等,英语中也有类似于 a 、the、of 等等。这样的词称为停用词。
停用词经常会过滤掉,不会被索引,在检索过程中,如果用户的查询词中含有停用词,系统会自动过滤掉。
停用词可以加快索引的速度、减少索引库的大小。

扩展词、停用词应该统一维护,避免集群中多台导致节点各自维护自己的一份。这里我们计划使用Web的方式,将dict词库共享给分词器等。

分词服务

配置Web
我这里使用 Nginx,你也可以使用 Tomcat:

apt install nginx

安装过程如下图所示:
在这里插入图片描述
访问页面:http://h121.wzk.icu,可以看到Nginx顺利运行:
在这里插入图片描述
编写dict内容:

vim /var/www/html/stop_dict.dic

向其中写入的内容如下:

的
了
啊
呢

同理,我们写入 ext_dict.dic:

vim /var/www/html/ext_dict.dic

我们访问对应的页面,可以拿到对应的Web文件:
在这里插入图片描述

配置分词器

# 这里看自己的版本 我选了好几个
cd /opt/servers/elasticsearch-8.15.0/plugins/analysis-ik
mkdir config
vim IKAnalyzer.cfg.xml

写入如下的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
  <comment>IK Analyzer 扩展配置</comment>
  <!--用户可以在这里配置自己的扩展字典 -->
  <entry key="ext_dict"></entry>
  <!--用户可以在这里配置自己的扩展停止词字典-->
  <entry key="ext_stopwords"></entry>
  <!--用户可以在这里配置远程扩展字典 -->
  <entry key="remote_ext_dict">http://h121.wzk.icu/ext_dict.dic</entry>
  <!--用户可以在这里配置远程扩展停止词字典-->
  <entry key="remote_ext_stopwords">http://h121.wzk.icu/stop_dict.dic</entry>
</properties>

对应的截图如下所示:
在这里插入图片描述

重启服务

重启ES服务,测试效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMake学习笔记(四)cmake --build使用踩坑记录

根据 深入理解 CMake 的 cmake --build 命令_cmake build-CSDN博客等消息来源的说法&#xff0c; cmake --build <dir> 将在目录<dir>中产生结果文件。但是实测发现&#xff0c;这里有坑&#xff1a;如果目录<dir>中没有CMakeCache.txt等文件的话&#xff…

门店收银系统源码-php+flutter+uniapp

1. 系统开发语言 核心开发语言: PHP、HTML5、Dart 后台接口: PHP7.3 后台管理网站: HTML5vue2.0element-uicssjs 线下收银台&#xff08;安卓/PC收银、安卓自助收银&#xff09;: Dart3 框架&#xff1a;Flutter 3.19.6 移动店务助手: uniapp 线上商城: uniapp 2.线下收…

每天花2分钟学数字化转型,第二讲:数字化

每天花2分钟学习数字化转型&#xff0c;第二讲&#xff1a;什么是数字化转型&#xff1f; 数字化转型的定义 Gartner对数字化(digitalization)的定义&#xff1a;数字化就是利用数字技术来改变商业模式并提供新的收入和价值创造机会&#xff1b;是转向数字业务的过程。 从这个…

叉车安全防撞装置的作用

‌叉车安全防撞装置的核心作用在于提升叉车运行时的安全性&#xff0c;特别是在倒车或经过岔路口等驾驶员视线可能受阻的情境下&#xff0c;通过探测叉车周围的障碍物距离&#xff0c;实时为驾驶员提供必要的辅助信息&#xff0c;有效预防碰撞事故的发生。‌ 这些装置通过多种技…

【多模态】ViT模型技术学习

前言 最近多模态模型特别火&#xff0c;模型也越来越小&#xff0c;性能优异的MiniCPM-2.6只有8B大小&#xff0c;它采用的图片编码器是SigLipViT模型&#xff0c;一起从头学习ViT和Transformer&#xff01;本文记录一下学习过程&#xff0c;所以是自上而下的写&#xff0c;从…

windows上svn设置忽略

目的 就是在windows环境下设置svn的需要忽略的文件&#xff0c;这还是挺实用的一个功能&#xff0c;不然&#xff0c;很多编译的中间文件都上传到svn上了&#xff0c;这样就不好了&#xff1b;ignore设置&#xff0c;也需要注意一下。 过程 svn服务端式忽略&#xff0c;这是…

【前端】制作一个简单的网页(2)

单标签组成的元素 这类标签不需要内容产生效果&#xff0c;通常表示对网页的某种行为&#xff0c;它们不用标记任何内容&#xff0c;开始即是结束。 比如&#xff0c;<hr>标签的作用是在网页中添加一条分割线&#xff0c;它仅包含开始标签&#xff0c;是一个单标签元素。…

【Linux】解读信号的本质&相关函数及指令的介绍

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

k8s的部署和安装

k8s的部署和安装 一、Kubernets简介及部署方法 1.1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个阶段&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参…

【去哪儿-注册安全分析报告-缺少轨迹的滑动条】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

查看SQL执行计划 explain

查看SQL执行计划 explain explain使用方式 alter session set current_schematest; explain plan for sql语句; --并不会实际执行&#xff0c;因此生成的执行计划也是预估的 select * from table(dbms_xplan.display); explain使用场景 1.内存中没有谓词信息了&#xff0…

网站仿制的五大要素

网站仿制的五大要素 在数字化快速发展的今天&#xff0c;仿制一个网站不仅是技术上的挑战&#xff0c;更是对创意与灵感的考验。无论是为了学习设计理念&#xff0c;还是为企业进行市场竞争&#xff0c;以下五大要素是网站仿制时必不可少的。 **1. 目标分析** 在仿制网站之前…

1. ESP32简介

ESP32是什么&#xff1a;它是乐鑫科技研发和设计的一种无线系统级芯片优点&#xff1a; 强大的处理能力无线通信功能广泛的外设接口低功耗特性 为什么选择ESP-IDF开发&#xff1a; 基于C/C开发官方主推实际项目需求 常见的ESP32型号&#xff1a;

Docker 环境下 GPU 监控实战:使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控

Docker 环境下 GPU 监控实战&#xff1a;使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控 文章目录 Docker 环境下 GPU 监控实战&#xff1a;使用 Prometheus 实现 DCGM Exporter 部署与 GPU 性能监控一 查看当前 GPU 信息二 dcgm-exporter 部署1&#xff09;Docker r…

电脑端微信图片文件视频的缓存目录

C:\Users\aaa30\Documents\WeChat Files\wxid_n6b8j77iqho412\FileStorage\Video\2024-10

冠层体散射反射对称性协方差矩阵的模型,在多种分解中都适用

把这个矩阵对应到观测协方差矩阵中&#xff0c;看占比多少&#xff0c;然年后得到体散射功率&#xff0c;时前面的系数乘对角线的和

51单片机快速入门之左移右移流水灯 2024年10/15

51单片机快速入门之左移右移流水灯 左移操作: <<1 每次往左移动一位假设一个八位数为0000 1111 当这个数左移一次之后 0 0001 1110当这个数左移两次之后 00 0011 1100 注意观察 橙色 数字 Python代码如下: 0b表示这是一个二进制 注意这里前置0被省略了 …

数据结构——树和森林

目录 树的存储结构 1、双亲表示法 2、孩子链表 3、孩子兄弟表示法 树与二叉树的转换 将树转换为二叉树 将二叉树转换为树 森林与二叉树的转化 森林转换成二叉树 二叉树转换为森林 树和森林的遍历 1、 树的遍历&#xff08;三种方式&#xff09; 2、森林的遍历 树的存…

DVWA之File Inclusion(文件包含)

DVWA之File Inclusion&#xff08;文件包含&#xff09; 1、定义&#xff1a;服务器通过php的特性&#xff08;函数的特性&#xff09;去包含任意文件时&#xff0c;由于对包含的文件来源没有过滤或过滤不严&#xff0c;从而可去包含一个恶意的文件。文件包含包括&#xff1a;…

【从零开始的LeetCode-算法】3200. 三角形的最大高度

给你两个整数 red 和 blue&#xff0c;分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形&#xff0c;满足第 1 行有 1 个球&#xff0c;第 2 行有 2 个球&#xff0c;第 3 行有 3 个球&#xff0c;依此类推。 每一行的球必须是 相同 颜色&#xff0c;且相邻行…