elasticsearch(ES)简介及安装-----笔记

embedded/2025/2/8 20:17:46/

elasticsearch_1">elasticsearch简介

ES是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。
ES结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。

elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。kibana负责数据可视化,elasticsearch负责存储、计算、搜索数据,logstash\Beats负责数据抓取。

elasticsearch底层实现是Lucene计术。lucene是一个java语言的搜索引擎类库,是Apache公司的顶级项目。
官网地址:https://lucene.apache.org/
Lucene的优势:易扩展;高性能(基于倒排索引)
Lucene的缺点:只限于java语言开发,学习曲线陡峭,不支持水平扩展
elasticsearch是lucene的二次开发,相比于lucene,elasticsearch具备优势:支持分布式,可水平扩展;提供Restful接口,可被任何语言调用

正向索引和倒序索引

elasticsearch采用倒排索引:
文档:每条数据都是一个文档
词条:文档按照语义分成词语
正向索引:基于文档id创建索引。查询词条必须先找到文档,然后判断是否包含词条
倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档位置。查询时先根据词条查询到文档id,而后获取到文档

ES于sql基本概念对比

文档:ES是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在ES中。
字段:json文档中的字段。
索引:相同类型的文档的集合。
索引映射:索引中文档的字段约束信息,类似表的结构约束
在这里插入图片描述
架构:
mysql:擅长事物类型操作,可以确保数据的安全和一致性
elasticsearch:擅长海量数据的搜索、分析、计算

ES安装

单点部署es
1.创建网络:因为我们还需要部署kibana容器,因此需要让es和kibana容器互联,这里先创建一个网络:docker network create es -net
2.加载镜像:这里我们采用elasticsearch的7.12.1的版本镜像,运行命令行:docker load -i es.tar
3.运行
在这里插入图片描述
命令解释:
-e “cluster.name=es-docker-cluster”:设置集群名称
-e “http.host=0.0.0.0”:监听的地址,可以外网访问
-e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:内存大小
-e “discovery.tyoe=single-node”:非集群模式
-v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
-v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
-v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
–privileged:授权逻辑卷访问权
–network es-net:加入一个名为es-net的网络中
-p 9200:9200:端口映射配置

kibana安装

kibana可以给我们提供一个elasticsearch的可视化界面
1.部署:运行docker命令,部署kabana
在这里插入图片描述
–network es-net:加入一个名为es-net的网络中,于elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器直接访问elasticsearch
-p 5601:5601:端口映射配置
可以通过命令docker logs -f kibana启动

kibana中Dev Tools就是es控制台
ES-安装IK分词器
分词器作用:创建倒排索引时对文档分词;用户搜索时,对输入的内容分词
es在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入内容分词,但默认的分词规则对中文处理不友好
处理中文分词,一般会使用IK分词器。https://github.com/medci/elasticsearch-analysis-ik
在线安装ik插件
在这里插入图片描述
ik分词器有两种模式:ik_smart最少粒度切分;ik_max_word最细粒度切分

#测试分词器
POST /_analyze
{"text":"课程白嫖"“analyzer”:"ik_smart"
}

IK分词器的拓展和停用词典
1.利用config目录的ikAnalyzer.cfg.xml文件添加拓展词典和停用词典
2.config目录中如果没有对应词典文件,需自己新建文件,再在词典中添加词条或者停用词条
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/embedded/160612.html

相关文章

【Elasticsearch】geotile grid聚合

geotile_grid聚合是 Elasticsearch 中一种用于处理地理数据的多桶聚合方式,它将geo_point和geo_shape类型的值分组到表示网格的桶中。以下是关于geotile_grid聚合的详细说明: 基本概念 • 网格划分:geotile_grid聚合将地理数据划分为一个稀疏…

【mysql】数据库字段设计原则

本文将分享17个关键字段设计原则,这些经验可规避80%的数据库设计缺陷,涵盖性能、扩展性、可维护性等核心维度,附具体场景示例: 一、数据类型选择:避免“隐形成本杀手” 1. 整数类型精确匹配 坑:滥用BIGIN…

Llama最新开源大模型Llama3.1

Meta公司于2024年7月23日发布了最新的开源大模型Llama 3.1,这是其在大语言模型领域的重要进展。以下是关于Llama 3.1的详细介绍: 参数规模与训练数据 Llama 3.1拥有4050亿(405B)参数,是目前开源领域中参数规模最大的…

为多个GitHub账户配置SSH密钥

背景 当需要同时使用多个GitHub账户(例如工作和个人账户)时,默认的SSH配置可能导致冲突。本文介绍如何通过生成不同的SSH密钥对并配置SSH客户端来管理多个账户。 操作步骤 生成SSH密钥对 为每个GitHub账户生成独立的密钥对,并指…

DeePseek结合PS!批量处理图片的方法教程

​ ​ 今天我们来聊聊如何利用deepseek和Photoshop(PS)实现图片的批量处理。 传统上,批量修改图片尺寸、分辨率等任务往往需要编写脚本或手动处理,而现在有了AI的辅助,我们可以轻松生成PS脚本,实现自动化处…

电子电器架构 --- 电子电气架构设计要求与发展方向

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

Centos挂载镜像制作本地yum源,并补装图形界面

内网环境centos7.9安装图形页面内网环境制作本地yum源 上传镜像到服务器目录 创建目录并挂载镜像 #创建目录 cd /mnt/ mkdir iso#挂载 mount -o loop ./CentOS-7-x86_64-DVD-2009.iso ./iso #前面镜像所在目录,后面所挂载得目录#检查 [rootlocalhost mnt]# df -h…

Deep Sleep 96小时:一场没有硝烟的科技保卫战

2025年1月28日凌晨3点,当大多数人还沉浸在梦乡时,一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击,警报声响彻机房,一场针对中国关键信息基础设施的网络攻击来势汹汹! 面对美国发起的这场…