网易首页 > 网易号 > 正文 申请入驻

详解Elastic Search搜索引擎,他是百度竞价吗?

0
分享至

一、 什么是Elastic Search

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。

1 相关概念

1.1 cluster

代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。

1.2 shards

代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改(primary shard)。

水平扩容时,需要重新设置分片数量,重新导入数据。

1.3 replicas

代表索引副本(replica shard),es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

1.4 recovery

代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。

1.5 river

代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的。

1.6 gateway

代表es索引快照的存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘。gateway对索引快照进行存储,当这个es集群关闭再重新启动时就会从gateway中读取索引备份数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。

1.7 discovery.zen

代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。

1.8 Transport

代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。

2 为什么不用数据库做搜索?

查询语法复杂度高。

如:电商系统中查询商品数据 - select * from products where name like '%关键字%' and price bewteen xxx and yyy and ......。不同的用户提供的查询条件不同,需要提供的动态SQL过于复杂。

关键字索引不全面,搜索结果不符合要求。

如:电商系统中查询商品数据,条件为商品名包含'笔记本电脑'。那么对此关键字的分析结果为-笔记本、电脑等。对应的查询语法应该为 - select * from products where name like '%笔记本%' or name like '%电脑%' .......

效率问题。

数据量越大,查询反应效率越低。

3 ES功能

3.1 分布式的搜索引擎和数据分析引擎

分布式:使用多节点分部存储海量数据,多节点同时提供服务。

搜索:类似百度搜索引擎的功能。

数据分析:电商中的销量排行,新闻中的点击访问排行等。

3.2 全文检索、结构化检索、数据分析

全文检索 - 搜索商品名包含某关键字的信息。 select * from products where name like '%xxx%'

结构化检索 - 搜索某种类的商品信息。 select * from products where category='xxx'

数据分析 - 分析每个商品种类中有多少商品。 select category_name, count(*) from category group by category_name

3.3 海量数据近实时处理

通过分布式实现海量数据近实时处理。

近实时处理:在秒级别的时间内对数据进行处理和分析。(如果处理时长过长,如:1小时,则成为离线批处理【batch-processing,如:在电信营业厅登记查询最近3年的通话记录,需要3天后再取结果】)

4 ES常见使用场景

维基百科,全文检索,高亮显示,搜索推荐

The Guardian(国外的一个新闻网站),此平台可以对用户的行为(点击、浏览、收藏、评论)、社区网络数据(对新闻的评论等)进行数据分析,为新闻的发布者提供相关的公众反馈。

Stack Overflow(国外的程序异常讨论论坛)

Github(开源代码管理),在千亿级别的代码行中搜索信息

电商网站

日志数据分析 - ELK技术

商品价格监控网站,在网站中设置商品价格监控,达到监控值的时候,会自动提示用户。

BI系统,商业智能,Business Intelligence。如电信企业对不同地点的消费情况,进行分析,得到地方性套餐设定的建议。(ES实现数据的分析和挖掘、Kibana进行数据可视化)

站内搜索,如电商、招聘、门户、企业内部系统等。

数据分析

5 ES的特点

分部集群,单机处理。可大可小

ES不是新技术,是将全文检索和数据分析、分布式整合到一起。

开箱即用。对中小型应用(数据量小,操作简单)来说,部署简单(默认部署),3分钟可部署使用。

补充数据库在现在互联网领域中的不足,如:全文检索、同义词处理、相关度排名、复杂数据分析、海量数据近实时处理等。

二、 Linux安装ES

使用的ES的版本是6.3.1。ES6.x要求Linux内核必须是3.5+版本以上。

在linux操作系统中,查看内核版本的命令是: uname -a

Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

课堂使用的LInux是CentOS6.5。内核使用的是2.6。内核版本不满足要求。无法安装ES。必须升级内核。

1 升级Linux内核版本

系统内核的提升,对已部署的应用一般没有影响,但是新版本内核,对线程的资源给与了更多的空间。如:低版本内核每个线程分配128K内存,高版本内核可能分配256K内存。

注册内核

rpm –import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

下载内核安装包

rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

安装内核新版本

yum --enablerepo=elrepo-kernel install kernel-lt -y

1 设置启动内核版本

修改的是Linux系统的引导文件。

vim /etc/grub.conf

修改内容:

default=1 -> default=0

2 重启系统让内核生效

使用命令: reboot

3 为ES提供完善的系统配置

ES在Linux中安装部署的时候,需要系统为其提供若干系统配置。如:应用可启动的线程数、应用可以在系统中划分的虚拟内存、应用可以最多创建多少文件等。

3.1 修改限制信息

vi /etc/security/limits.conf

是修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多创建的文件是65535个。但是ES至少需要65536的文件创建权限。修改后的内容为:

* soft nofile 65536

* hard nofile 65536

3.2 修改线程开启限制

vi /etc/security/limits.d/90-nproc.conf

是修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。ES在5.x版本之后,强制要求在linux中不能使用root用户启动ES进程。所以必须使用其他用户启动ES进程才可以。

* soft nproc 4096

root soft nproc unlimited

注意:Linux低版本内核为线程分配的内存是128K。4.x版本的内核分配的内存更大。如果虚拟机的内存是1G,最多只能开启3000+个线程数。至少为虚拟机分配1.5G以上的内存。

3.3 修改系统控制权限

vi /etc/sysctl.conf

系统控制文件是管理系统中的各种资源控制的配置文件。ES需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用直接开辟虚拟内存。

新增内容为:

vm.max_map_count=655360

使用命令: sysctl -p 。 让系统控制权限配置生效。

3.4 可选配置(建议增加)

修改elasticsearch的配置文件,设置可访问的客户端。0.0.0.0代表任意客户端访问。

vi config/elasticsearch.yml

修改下述内容

network.host: 0.0.0.0

4 安装ES

ES是java开发的应用。在6.3.1版本中,要求JDK至少是1.8.0_131版本以上。

ES的安装过程非常简单。解压立刻可以使用。

tar -zxf elasticsearch-6.3.1.tar.gz

4.1 修改ES应用的所有者

因为ES不允许root用户启动,而课堂案例中,ES是root用户解压缩的。所以解压后的ES应用属于root用户。所以我们需要将ES应用的所有者修改为其他用户。当前课堂案例中虚拟机Linux内有bjsxt这个用户。

chown -R bjsxt.bjsxt elasticsearch

4.2 切换用户并启动

su bjsxt

$es_home/bin/elasticsearch

4.3 测试连接

curl http://192.168.2.119:9200

返回如下结果:

{

"name" : "L6WdN7y",

"cluster_name" : "elasticsearch",

"cluster_uuid" : "s7_GSd9YQnaH10VQBKCQ5w",

"version" : {

"number" : "6.3.1",

"build_flavor" : "default",

"build_type" : "tar",

"build_hash" : "eb782d0",

"build_date" : "2018-06-29T21:59:26.107521Z",

"build_snapshot" : false,

"lucene_version" : "7.3.1",

"minimum_wire_compatibility_version" : "5.6.0",

"minimum_index_compatibility_version" : "5.0.0"

},

"tagline" : "You Know, for Search"

}

5 安装Kibana

是ES提供的一个基于WEB的管理控制台。现阶段安装Kibana主要是为了方便学习。

在Linux中安装Kibana很方便。解压,启动即可。Kibana要求的环境配置是小于ES的要求的。

tar -zxf kibana-6.3.1-linux-x86_64.tar.gz

修改config/kibana.yml

新增内容: server.host: "0.0.0.0"

$kibana_home/bin/kibana

访问时,使用浏览器访问http://192.168.2.119:5601/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
有料又劲爆!私飞+同框!这关系太顶了!

有料又劲爆!私飞+同框!这关系太顶了!

柚子说球
2026-05-21 23:00:00
厦门一小区新旧物业争地盘,新物业带20名保安冲入小区,冲突中七旬业主倒地昏迷,辖区派出所介入

厦门一小区新旧物业争地盘,新物业带20名保安冲入小区,冲突中七旬业主倒地昏迷,辖区派出所介入

大风新闻
2026-05-24 15:48:46
张海迪是个谜!她1955年出生,虽然曾患有多种疾病,但面色红润

张海迪是个谜!她1955年出生,虽然曾患有多种疾病,但面色红润

岁月有情1314
2026-05-23 01:19:55
山西煤矿爆炸事故已致82人遇难,涉事企业有重大违法行为

山西煤矿爆炸事故已致82人遇难,涉事企业有重大违法行为

时代周报
2026-05-24 00:13:11
副热带高压发威,广东持续高温!个别市县气温直冲38℃

副热带高压发威,广东持续高温!个别市县气温直冲38℃

南方都市报
2026-05-24 12:10:32
不装了?特朗普访华刚回去没几天,美财长喊话中国:还需要再谈谈

不装了?特朗普访华刚回去没几天,美财长喊话中国:还需要再谈谈

漫步独行侠
2026-05-23 08:47:55
2-0横扫世界第7!中国女网15岁新星进决赛冲冠:郑钦文后继有人

2-0横扫世界第7!中国女网15岁新星进决赛冲冠:郑钦文后继有人

李喜林篮球绝杀
2026-05-24 09:43:33
“你找媒体,我们就不帮你了”:30多万买的问界,12天增程器坏了

“你找媒体,我们就不帮你了”:30多万买的问界,12天增程器坏了

番外行
2026-05-21 15:54:40
西甲大结局!赫罗纳1-1降级,2年前还在争冠,马洛卡3-0也没保级

西甲大结局!赫罗纳1-1降级,2年前还在争冠,马洛卡3-0也没保级

体育知多少
2026-05-24 07:47:32
国际足联也慌了!原来除了中国,还有这么多国家不给世界杯买单了

国际足联也慌了!原来除了中国,还有这么多国家不给世界杯买单了

八斗小先生
2026-05-06 18:05:58
捅破天了!乌克兰血洗校园,普京宣布更大决定!

捅破天了!乌克兰血洗校园,普京宣布更大决定!

大嘴说天下
2026-05-23 22:45:03
董路暴怒:为浮嶋敏洗地的不是球盲就是汉奸 你不瞎就不会替他说话

董路暴怒:为浮嶋敏洗地的不是球盲就是汉奸 你不瞎就不会替他说话

风过乡
2026-05-24 13:47:48
“蛋白吃得好,医院跑得少”,建议5种蛋白食物换着吃,增强体质

“蛋白吃得好,医院跑得少”,建议5种蛋白食物换着吃,增强体质

春序娱乐
2026-05-23 21:04:38
丁太升评价《歌手2026》:窦靖童最惊喜,张碧晨最差,庾澄庆老了

丁太升评价《歌手2026》:窦靖童最惊喜,张碧晨最差,庾澄庆老了

糊咖娱乐
2026-05-23 18:41:55
帅惟浩加盟在即,王子铭太糙 约翰只会1种阵型 成都伤病潮

帅惟浩加盟在即,王子铭太糙 约翰只会1种阵型 成都伤病潮

替补席看球
2026-05-24 10:52:39
记者:朴镇燮入选世界杯名单后,特意宴请浙江FC全队聚餐庆祝

记者:朴镇燮入选世界杯名单后,特意宴请浙江FC全队聚餐庆祝

懂球帝
2026-05-24 08:18:08
纪委监委能恢复你多久前删掉的微信?答案可能让你睡不着觉

纪委监委能恢复你多久前删掉的微信?答案可能让你睡不着觉

黑哥讲现代史
2026-05-21 13:52:20
解放台湾以意想不到方式实现?专家建言:来一场新的“西安事变”

解放台湾以意想不到方式实现?专家建言:来一场新的“西安事变”

神秘莫测的世界
2026-05-24 09:37:15
反转!不少杰青可以睡安稳觉,耿同学明确表示,近期不会学术打假

反转!不少杰青可以睡安稳觉,耿同学明确表示,近期不会学术打假

火山詩话
2026-05-23 05:42:26
情况不对劲,中国被曝已经断供日本稀土4个月,日方还没出现危机

情况不对劲,中国被曝已经断供日本稀土4个月,日方还没出现危机

爱看剧的阿峰
2026-05-24 00:30:05
2026-05-24 17:00:49
白色大鲨鱼
白色大鲨鱼
互联网编程的讲解以及学习方法
129文章数 120关注度
往期回顾 全部

科技要闻

我戴着摄像头上班,正在帮AI抢走我饭碗

头条要闻

夫妻婚后未同房 妻子:刚结婚时没成功 第二次他很懊恼

头条要闻

夫妻婚后未同房 妻子:刚结婚时没成功 第二次他很懊恼

体育要闻

唐斯发牌,大头逆袭:骑士跌向残忍夏季

娱乐要闻

李晨郑恺冲上热搜!跑男停宣引热议

财经要闻

爆炸致82人遇难 留神峪煤业存违法行为

汽车要闻

2027款星途瑶光上市 把"全球车"标准卷进13万级市场

态度原创

时尚
健康
家居
数码
手机

伊姐周六热推:电视剧《嫁金枝》;电视剧《大唐迷雾 第一季》......

外泌体 ≠ 生长因子!它们之间究竟有何区别?

家居要闻

低调传承 温润沉静

数码要闻

OPPO Reno 16官宣AI键,一键闪记有多强?

手机要闻

苹果突然超车,OPPO不敌vivo、小米排名第五

无障碍浏览 进入关怀版