分布式搜索引擎ES-elasticsearch入门

1.分布式搜索引擎:luceneVS Solr VS Elasticsearch

什么是分布式搜索引擎
搜索引擎:数据源:数据库或者爬虫资源
分布式存储与搜索:多个节点组成的服务,提高扩展性(扩展成集群)
使用搜索引擎为搜索提供服务。可以从海量数据 中快速的获取到用户想要的数据,并且反馈给用户;可以提升存储量,分布式,可以部署在多个节点之上,分散存储。

luceceVS Solr VS Elasticsearch
倒排序索引:共同特点
Lucene:类库,api,本质是jar包,只能使用java整合
Solr:基于lucece,对Lucene的封装,Apache开源项目,实现集群通过zookeeper
国外互联网大厂在使用。
ES:基于lucene,提供restful类型的接口为我们提供服务。任何开发语言

2.Elasticsearch核心术语

ES->类比:数据库
索引index–》类比:表
文档(document)–>行,记录
字段fields->列

stu_index:索引
{id: 1001,name: jason,age: 19
},//{}内容为文档,id,name,age都是字段
{id: 1002,name: tom,age: 18
},
{id: 1003,name: rose,age: 22
}

文档都是以json格式存在的。
映射mapping:类比表结构定义(int,char,长度,是不是null等)
近实时NRT:near real time一般一秒左右,近实时搜索
节点node:每一个服务器
Shard repica:数据分片和备份

age: 22
}

集群相关
分片(shard):把索引库拆分为多份,分别放在不同的节点上,比如有3个节点,3个节点的所有数据内容加在一起是一个完整的索引库。分别保存到三个节点上,目的为了水平扩展,提高吞吐量。

备份(replica):每个shard的备份。

简称
shard = primary shard(主分片)
replica = replica shard(备份节点)

3.Elasticsearch集群架构原理

在这里插入图片描述
多个es节点组成集群(多个shard),平均分配,1000/s是吞吐量。当有宕机后,使用repica作为备份。分片提高性能。

4.什么是倒排索引

正排索引:
相当于文档中的一条条记录;
例子:汉语值得学习;汉语是语言;汉语学习视频;

倒排索引:起源于实际应用中需要根据属性的值来查询记录。这种索引表的每一项都包括一个属性值和包含该属性值得各个记录地址。由于不是根据记录来确定属性,而是根据属性来确定记录的位置。
可以记录文档的ids,词频跟位置
例子:汉语值得学习;汉语是语言;汉语学习视频;

单词文档ids词频TF;位置POS
1,2,31:1<1>,2:1<1>,3:1<1>
1,2,31:1<2>,2:2<2,4>,3:1<2>
值得11:1:<3>
学习1,31:1<4>,3:1:<3>
21:1;<3>
22:1:<5>
视频33:1:<4>

5.安装Elasticsearch

上传后解压:
在这里插入图片描述
移动后的es文件:
在这里插入图片描述
ES 目录介绍
bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等
config:配置文件目录
JDK:java环境
lib:依赖的jar,类库
logs:日志文件
modules:es相关的模块
plugins:可以自己开发的插件
data:这个目录没有,自己新建一下,后面要用 -> mkdir data,这个作为索引目录

修改核心配置文件 elasticearch.yml
修改集群名称,默认是elasticsearch,虽然目前是单机,但是也会有默认的
为当前的es节点取个名称,名称随意,如果在集群环境中,都要有相应的名字
在这里插入图片描述
修改data数据保存地址
修改日志数据保存地址

在这里插入图片描述
绑定es网络ip,原理同redis
默认端口号,可以自定义修改

在这里插入图片描述
集群节点
在这里插入图片描述
修改JVM参数
在这里插入图片描述
默认xms和xmx都是1g,虚拟机内存没这么大,修改一下即可
在这里插入图片描述
添加用户
ES不允许使用root操作es,需要添加用户,操作如下:

useradd esuser
chown -R esuser:esuser /usr/local/elasticsearch-7.4.2
su esuser
whoami
whoami

启动ES
./elasticsearch
如果出现如下错误:
在这里插入图片描述

那么需要切换到root用户下去修改配置如下:

vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

在这里插入图片描述
在这里插入图片描述
别忘记 sysctl -p 刷新一下
最后再次启动OK

测试
访问你的虚拟机ip+端口号9200,如下则表示OK
在这里插入图片描述

停止es
如果是前台启动,直接ctrl+c就可以停止
后台启动:

./elasticsearch -d

停止杀进程:
在这里插入图片描述
端口号意义
9200:Http协议,用于外部通讯
9300:Tcp协议,ES集群之间是通过9300通讯

6.安装es-header插件

由于无法访问GitHub官网,以及google应用商店,在网上找到教程通过GitClone去访问GitHub。然后在csdn找到别人别人提供的es-head的google商店扩展程序的安装包,完成es-head的一种安装方式。
扩展程序的安装地址:
在这里插入图片描述
GiuClone地址:https://www.gitclone.com/

安装node.js:最好结合下面两个教程:
https://blog.csdn.net/qq_39038178/article/details/125403896
https://zhuanlan.zhihu.com/p/542932711

需要在测试的后台开启跨域权限。
npm run start

总结;独立部署或者通过google扩展程序都很不错;主要有两种实现方式;
独立部署:
在这里插入图片描述
使用google extension:
在这里插入图片描述

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

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

相关文章

Android获取当前屏幕显示的是哪个activity

在 Android 中&#xff0c;要获取当前屏幕显示的 Activity&#xff0c;可以使用以下几种方法&#xff1a; 方法一&#xff1a;使用 ActivityManager 获取当前运行的任务信息 这是一个常见的方法&#xff0c;尽管从 Android 5.0 (API 21) 开始&#xff0c;有些方法变得不太可靠…

Java语言程序设计——篇五(2)

有关数组的方法 &#x1f4a5;增强的for循环实战演练 数组元素的复制实战演练 数组参数与返回值&#x1f4a2;java.util.Arrays类数组的排序实战演练 元素的查找数组元素的复制填充数组元素数组的比较实战演练 &#x1f4a5;增强的for循环 增强的for循环&#xff0c;它是Java …

MySQL(6)内置函数,复合查询.

目录 1.内置函数; 2.复合查询; 1.内置函数: 1.1 日期函数: 时分秒: 时间戳: 基本日期上加日期: 基本日期减去日期: 日期相差天数: &#x1f330; 创建一张表&#xff0c;记录生日: 创建一个留言表: 显示所有留言信息&#xff0c;发布日期只显示日期&#xff0c;不用显示时间: …

tree组件实现折叠与展开功能(方式1 - expandedTree计算属性)

本示例节选自vue3最新开源组件实战教程大纲&#xff08;持续更新中&#xff09;的tree组件开发部分。考察响应式对象列表封装和computed计算属性的使用&#xff0c;以及数组reduce方法实现结构化树拍平处理的核心逻辑。 实现思路 第一种方式&#xff1a;每次折叠或展开后触发…

node管理工具nvm

使用nvm可以切换node版本、命令安装node 一、nvm下载安装 1、下载 nvm-setup.zip - 蓝奏云 在github可以选择最新版的【nvm】&#xff1a;&#xff08;nvm-windows 最新下载地址&#xff09;Releases coreybutler/nvm-windows GitHub nvm-noinstall.zip&#xff1a; 这个…

基于edk2编译arm64版intel网卡undi驱动

本文介绍如何在edk2下面编译intel undi驱动。 edk2版本edk2-stable202305 文章目录 一、源码下载二、驱动编译2.1 第一次编译IntelXGigUndi及修改2.2 Intel其他undi驱动编译三、驱动二进制文件四、驱动使用方法一、源码下载 intel 网卡驱动下载地址 https://www.intel.com/con…

MySQL 数据库 - 事务

MySQL 数据库&#xff08;基础&#xff09;- 事务 事务简介 事务 是一组操作集合&#xff0c;他是一个不可分割的工作单位&#xff0c;事务会把所有的操作看作是一个整体一起向系统发送请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 比如&#xff1a;张…

C#医学影像管理系统源码(VS2013)

目录 一、概述 二、系统功能 系统维护 工作站 三、功能介绍 影像采集 统计模块 专业阅片 采集诊断报告 报告管理 一、概述 医学影像存储与传输系统&#xff08;PACS&#xff09;是一种集成了影像存储、传输、管理和诊断功能的系统。它基于数字化成像技术、计算机技术和…

STM32CubeMX配置STM32G071输入捕获(HAL库开发)

1.时钟配置HSI主频配置64M 2.配置好串口&#xff0c;选择异步模式 3.配置TIM1_CH1产生1KHz的信号&#xff0c;主频64MHz&#xff0c;分频&#xff08;64-1&#xff09;&#xff0c;计数周期&#xff08;1000-1&#xff09;&#xff0c;这样即可生成1KHz信号。 4.配置TIM3_CH1和…

农业旅游与乡村旅游:融合绿色田野与诗意远方的经济新篇章

在这个快节奏的时代&#xff0c;人们对于回归自然、体验淳朴生活的渴望日益增强。农业旅游与乡村旅游&#xff0c;作为新兴的旅游形态&#xff0c;正逐步成为连接城市与乡村的桥梁&#xff0c;不仅为都市人提供了一片心灵的栖息地&#xff0c;也为农村地区带来了前所未有的发展…

昇思25天学习打卡营第15天|munger85

K近邻算法实现红酒聚类 现在数据集这个就是红酒的分类的数据集红酒每一个都会有很多的属性有三个属性下载数据集&#xff0c;这个是红酒的分类的数据集&#xff0c;红酒每一个都会有很多的属性&#xff0c;有三个属性。这十三个属性就可以用来分辨它是哪一个13个属性就可以用来…

Nacos部署升级1.4.2到2.3.1版本

一.下载安装&#xff1a; https://github.com/alibaba/nacos/releases/download/2.3.1/nacos-server-2.3.1.zip 下载完成解压即可 二.新旧版本数据结构有变化需要同步数据结构&#xff1a; ALTER TABLE config_info ADD encrypted_data_key TEXT NOT NULL COMMENT ‘秘钥’;…

【第5章】Spring Cloud之Nacos服务注册和服务发现

文章目录 前言一、提供者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 二、消费者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 三、服务列表四、服务发现1. 获取服务列表2. 测试2.1 获取所有服务2.2 根据服务名获取服务信息 五、更多配置项总结 前言 本节通过…

hot100 | 十四、贪心

1-leetcode121. 买卖股票的最佳时机 注意&#xff1a; Labuladong的套路太厉害了&#xff0c;分析的很清晰状态转移方程 public int maxProfit(int[] prices) {int n prices.length;int[][] dp new int[n][2];for (int i 0; i < n; i) {if (i-1 -1){// base casedp[…

基于Python+Django+MySQL的心理咨询预约系统

心理咨询预约系统 DjangoMySQL 基于PythonDjangoMySQL的心理咨询预约系统 项目主要依赖Django3.2&#xff0c;MySQL 支持随机验证码生成与登录验证 简介 基于PythonDjangoMySQL的心理咨询预约系统通过连接数据库获取数据&#xff0c;登录新增随机数字验证码验证。具体可以看…

Ruby爬虫技术:深度解析Zhihu网页结构

在互联网时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在社交媒体和问答平台如Zhihu&#xff08;知乎&#xff09;上&#xff0c;用户生成的内容蕴含着丰富的信息和洞察。本文将深入探讨如何使用Ruby爬虫技术来解析Zhihu的网页结构&#xff0c;并获取有价值的数据。 …

泛域名ssl生成

ssl生成 参考文档 https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E安装acme curl https://get.acme.sh | sh -s email[此处放githup的邮箱]例&#xff1a;curl https://get.acme.sh | sh -s emailmyexample.com手动 dns 方式 // 1.触发验证&#xf…

某安居客滑块验证码

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识&#xff0c;欢迎私信共享学习心得。 如有侵权&#xff0c;联系博主删除。 请勿商用&#xff0c;否则后果自负。 网址 aHR0cHM6Ly93d3cuYW5qdWtlLmNvbS9jYXB0Y2hhLXZlcmlmeS8/Y2FsbGJhY2s9c2hpZWxkJmZyb209YW50aXNwYW0 …

精准营销从数据开始,Xinstall为App增长插上翅膀,安装数据尽在掌握!

在这个信息爆炸的时代&#xff0c;App市场竞争日益激烈&#xff0c;如何精准获取并分析安装数据&#xff0c;成为了每一个App开发者和运营者必须面对的重要课题。数据&#xff0c;是指导我们行动的灯塔&#xff0c;是优化策略、提升转化的关键。然而&#xff0c;对于许多开发者…

Mybatis<collection>实现一对多

时隔多年又用到这样的查询方式了,提前声明一下分页最后返回的数据会小于每页条数&#xff0c;废话不多说直接上代码&#xff01; Data public class PbcUserTargetTaskPageVO {ApiModelProperty("个人绩效指标id")private Long id;ApiModelProperty("月份"…