分布式搜索引擎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->列

java 复制代码
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,3 1:1<1>,2:1<1>,3:1<1>
1,2,3 1:1<2>,2:2<2,4>,3:1<2>
值得 1 1:1:<3>
学习 1,3 1:1<4>,3:1:<3>
2 1:1;<3>
2 2:1:<5>
视频 3 3: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,需要添加用户,操作如下:

java 复制代码
useradd esuser
chown -R esuser:esuser /usr/local/elasticsearch-7.4.2
su esuser
whoami
whoami

启动ES

./elasticsearch

如果出现如下错误:

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

vim /etc/security/limits.conf

java 复制代码
* 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:

相关推荐
风_流沙几秒前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
字节程序员14 分钟前
Jmeter分布式压力测试
分布式·jmeter·压力测试
ProtonBase30 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
时时刻刻看着自己的心34 分钟前
clickhouse分布式表插入数据不用带ON CLUSTER
分布式·clickhouse
TGB-Earnest2 小时前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
Data跳动9 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc11110 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
Java程序之猿11 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
来一杯龙舌兰11 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
节点。csn13 小时前
Hadoop yarn安装
大数据·hadoop·分布式