ElasticSearch基础普及篇

2020-01-14 03:12:07 来源:网络

本文将分为三大部分来讲es相关的基础知识点

一、ElasticSearch 基础概念和组成部分

1)ElasticSearch概念一句话总结:

ES是一个基于Lucene并采用Restful API 标准的高可扩展性和高可用性的实时数据分析的全文检索工具

2)ElasticSearch涉及到的一些概念:

NRT(准实时): Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这 个文档能够被搜索到有一个轻微的延迟(通常是1秒)

Node(节点):单个的装有ElasticSearch服务并且提供故障转移和扩展的服务器

Cluster(集群):一个集群就是由一个或多个Node组织在一起共同工作,共同分享整个数据具有负载均衡功能的集群,集群名称是唯一标识,因为一个节点只能通过指定某个集群的名字,来加入这个集群

Document(文档):一个文档是一个可以被索引的基础信息单元

Index(索引):索引就是一个拥有几分相似特征的文档的集合

Type(类型):一个索引中,你可以定义一种或者多种类型

Field(列):Field是ElasticSearch中最小单位,相当于数据的某一列

Shards(分片):一个索引可以存储超出单个结点硬件限制的大量数据。比如,一个具有10亿文档的索引占据1TB的磁盘空间,而任一节点都没有这样大的磁盘空间;或者单个节点处理搜索请求,响应太慢。因此ElasticSearch将索引分成若干份,每个部分就是一个shard ,当你创建一个索引的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。 分片好处就是可以对数据进行水平分割,扩展内容容量,提高查询性能和吞吐量

Replicas(复制):Replicas是索引的一份或者多份拷贝 提供高可用

分片和复制的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变复制数量,但是不能改变分片的数量

3)Es跟关系型数据库对照如下图:

ElasticSearch基础普及篇

4) ElasticSearch架构图如下:

ElasticSearch基础普及篇

二、ElastSearch 简单安装

1)ElasticSearch安装:

ES最佳实践安装方法就是下载压缩包直接解压 官网地址:https://www.elastic.co/

1)安装ES首先需要安装jdk,必须是1.7以上的版本。

[root@localhost ~]# yum -y install java-1.8.0-openjdk*

2)下载压缩包到下载目录下

[root@localhost ~] # cd /opt/elasticsearch && wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gz

[root@localhost elasticsearch]# tar zxvf elasticsearch-2.3.5.tar.gz

3)创建ES安装目录 将解压后的东西移动到安装目录

[root@localhost elasticsearch]# cd elasticsearch-2.3.5

[root@localhost elasticsearch-2.3.5]# mkdir /usr/local/elasticsearch

[root@localhost elasticsearch-2.3.5]# mv * /usr/local/elasticsearch

[root@localhost elasticsearch-2.3.5]# cd /usr/local/elasticsearch/bin/

[root@localhost bin]# ./elasticsearch

Exceptioninthread"main"java.lang.RuntimeException:don'trunelasticsearchasroot.

atorg.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)

atorg.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)

atorg.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)

atorg.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

Refertothelogforcompleteerrordetails.

报错,提示不能用root用户运行。

vim编辑elasticsearch,添加ES_JAVA_OPTS="-Des.insecure.allow.root=true"

我添加在了注释说明下面,一定在变量ES_JAVA_OPTS使用前添加。

再次运行./elasticsearch

[root@localhost bin]# ./elasticsearch

[2016-08-2016:11:52,021][WARN][bootstrap]runningasROOTuser.thisisabadidea!

[2016-08-2016:11:52,034][WARN] [bootstrap]unabletoinstallsyscallfilter:seccompunavailable:requireskernel3.5+withCONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledin

[2016-08-2016:11:52,431][INFO][node] [JohnnyStorm]version[2.3.5],pid[28122],build[90f439f/2016-07-27T10:36:52Z]

[2016-08-2016:11:52,431][INFO][node][JohnnyStorm]initializing...

[2016-08-2016:11:53,390][INFO][plugins][JohnnyStorm]modules[lang-groovy,reindex,lang-expression],plugins[],sites[]

[2016-08-2016:11:53,474][INFO][env] [JohnnyStorm]using[1]datapaths,mounts/(/dev/mapper/VolGroup-lv_root),netusable_space[22.3gb],nettotal_space[30.5gb],spins?[possibly],types[ext4]

[2016-08-2016:11:53,475][INFO][env][JohnnyStorm]heapsize[1007.3mb],compressedordinaryobjectpointers[true]

[2016-08-2016:11:53,475][WARN][env][JohnnyStorm]maxfiledescriptors[65535]forelasticsearchprocesslikelytoolow,considerincreasingtoatleast[65536]

[2016-08-2016:11:55,811][INFO][node][JohnnyStorm]initialized

[2016-08-2016:11:55,811][INFO][node][JohnnyStorm]starting...

[2016-08-2016:11:56,031][INFO][transport][JohnnyStorm]publish_address{127.0.0.1:9300},bound_addresses{127.0.0.1:9300},{[::1]:9300}

[2016-08-2016:11:56,038][INFO][discovery][JohnnyStorm]elasticsearch/VDX23-BvQX-2saLUKUSLww

[2016-08-2016:11:59,138][INFO][cluster.service][JohnnyStorm]new_master{JohnnyStorm}{VDX23-BvQX-2saLUKUSLww}{127.0.0.1}{127.0.0.1:9300},reason:zen-disco-join(elected_as_master,[0]joinsreceived)

[2016-08-2016:11:59,166][INFO][http][JohnnyStorm]publish_address{127.0.0.1:9200},bound_addresses{127.0.0.1:9200},{[::1]:9200}

[2016-08-2016:11:59,166][INFO][node][JohnnyStorm]started

[2016-08-2016:11:59,201][INFO][gateway][JohnnyStorm]recovered[0]indicesintocluster_state

出现上面信息表示已经运行成功,到此正式完成安装。

外网访问

上面的提示中有一句:publish_address{127.0.0.1:9200},bound_addresses{127.0.0.1:9200},{[::1]:9200},通过浏览器访问发现无法访问。

修改配置文件,

vim /usr/local/elasticsearch/config/elasticsearch.yml

添加或修改:network.host:0.0.0.0,表示不限制IP访问

重启服务后浏览器就能访问。

三、ElasticSearch 插件部分简介

ES安装插件是非常简单的 都是一句命令搞定 插件一般都是存放在github上面 命令会自动去找相应目录下的源码 下载并安装到本地的plugin目录下 也可以使用下载并解压

1)安装分词[编辑]

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.9.5/elasticsearch-analysis-ik-1.9.5.zip

mkdir /usr/local/elasticsearch/plugin/ik

cp elasticsearch-analysis-ik-1.9.5.zip /usr/local/elasticsearch/plugin/ik

unzip elasticsearch-analysis-ik-1.9.5.zip

4) 验证 创建索引 创建mapping 添加数据

创建索引:curl -X PUT http://localhost:9200/index

创建mapping:

curl -X POST http: //localhost: 9200/index/fulltext/_mapping-d'  {

"fulltext": {

"_all": {

"analyzer": "ik_max_word",

"search_analyzer": "ik_max_word",

"term_vector": "no",

"store": "false"

},

"properties": {

"content": {

"type": "string",

"store": "no",

"term_vector": "with_positions_offsets",

"analyzer": "ik_max_word",

"search_analyzer": "ik_max_word",

"include_in_all": "true",

"boost": 8

}

}

}

}'

插入数据:

curl -X POST http://localhost:9200/index/fulltext/1 -d '{"content":"美国留给伊拉克的是个烂摊子吗"}'

curl -X POST http://localhost:9200/index/fulltext/2 -d '{"content":"公安部:各地校车将享最高路权"}'

curl -X POST http://localhost:9200/index/fulltext/3 -d '{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}'

curl -X POST http://localhost:9200/index/fulltext/4 -d '{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击嫌犯已自首"}'

查询数据并高亮显示:

curl -X POST http://localhost:9200/index/fulltext/_search-d'

{

"query":{"term":{"content":"中国"}},

"highlight":{

"pre_tags":["",""], //默认高亮是em标签

"post_tags":["",""],

"fields":{  "content":{}  }

}

}'

结果:

{  "took":14,  "timed_out":false,  "_shards":{  "total":5,  "successful":5,  "failed":0  },  "hits":{  "total":2,  "max_score":2,  "hits":[  {  "_index":"index",  "_type":"fulltext",  "_id":"4",  "_score":2,  "_source":{  "content":"中国驻洛杉矶领事馆遭亚裔男子枪击嫌犯已自首"  },  "highlight":{  "content":[  "中国驻洛杉矶领事馆遭亚裔男子枪击嫌犯已自首"  ]  }  },  {  "_index":"index",  "_type":"fulltext",  "_id":"3",  "_score":2,  "_source":{  "content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"  },  "highlight":{  "content":[  "均每天扣1艘中国渔船"  ]  }  }  ]  }  }

2)JDBC插件安装 该插件主要是同步数据用的 后面会有篇幅去详细介绍此部分

[root@localhost bin]# cd /opt/elasticsearch

[root@localhost elasticsearch]# wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.4.0/elasticsearch-jdbc-2.3.4.0-dist.zip

[root@localhostelasticsearch]# cp elasticsearch-jdbc-2.3.4.0-dist /usr/local/elasticsearch/elasticsearch-jdbc-2.3.4.0

3) head插件安装 下图摘自网上

[root@localhost bin]# ./plugin -install mobz/elasticsearch-head

会根据配置文件配置的插件存放位置进行安装 打开http://localhost:9200/_plugin/head即可查看

在地址栏输入es服务器的ip地址和端口点connect就可以连接到集群。下面是连接后的视图。这是主界面,在这里可以看到es集群的基本信息(如:节点情况,索引情况)。

ElasticSearch基础普及篇

界面的右边有些按钮,如:node stats, cluster nodes,这些是直接请求es的相关状态的api,返回结果为json,如下图:

ElasticSearch基础普及篇

在索引下面有info和action两个按钮。info是可以查看索引的状态和mapping的定义。action是对索引进行操作,如:添加别名、刷新、关闭索引,删除索引等。

ElasticSearch基础普及篇ElasticSearch基础普及篇

browser浏览界面,这个界面可以同时查看多个索引的数据,也可以查询指定字段的数据。

ElasticSearch基础普及篇

Structured Query查询界面,这个界面可以对某个索引进行一些复杂查询,如下面这个例子是查询product索引,构造boolquery,title字段里查询“产品”关键词,price范围为10到100的记录。

ElasticSearch基础普及篇

Any Request任意请求界面,这个界面可以说是个rest的客户端,可以通过它来对es进行一些请求操作或测试api接口,下面这个例子是把product索引的副本数设置为1,更多的api可以到es官网查询。

ElasticSearch基础普及篇


作者:meng_philip123
链接:https://www.jianshu.com/p/2203e100e83c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

,emiya ElasticSearch基础普及篇

相关:

《泰坦尼克号》那些没有曝光的幕后照片

警惕任性的行政处罚消解执法公信  警惕任性的行政处罚消解执法公信  史奉楚  近日,网传安徽亳州一名男子因违法停车被交警贴罚单,事后将罚单拍照发在朋友圈,并配文“奶奶的腿,接个小孩停十分钟一百”。次日,该男子被当地派出所传唤并被行拘。1月13日,亳州公安发布情况通报称,亳州市公安局高度重视,已组织督察、法制部门和派驻纪检监察组组成联合调查组,实事求是地对该事件展开全面调查。根据调查情况,如发现存在执法不当问题,市公安局将坚持有..

往返火车票同时抢契合民众期待  往返火车票同时抢契合民众期待  秋实   随着互联网技术的发展,现在大家购买火车票也是越来越方便了。数据显示,在1月10日全国铁路共售出的1482.7万张车票中,86.5%都是通过12306网站或手机客户端售出的,在网上购买车票的人越来越多,而希望火车票能像机票一样实现往返票同时销售的呼声也越来越高。对此,12306技术部主任单杏花11日表示,一次买齐往返票已在研究中。   当前,旅客在12306网站或手机客户端上购票,只..

滴滴推春节服务费全额给司机  滴滴推春节服务费全额给司机  本报讯(记者 刘洋)1月13日,滴滴、首汽约车等网约车公司公布春节方案。为保障运力,首汽向乘客加收“过节费”,滴滴推春节服务费。   滴滴发布2020年春节公开信,预测2020年春节打车成功率将较平日下降16%,其中1月24日-1月26日(农历除夕-正月初二)、1月31日(正月初七),将是打车最难的四天。为缓解节假日供需矛盾,让春节出行更顺心,滴滴公布包括“同时呼叫”“春节出行指南”、“..

特斯拉model3 、奥迪Q5L在列!中保研下一批测试车型曝光​自从一个月前上汽大众帕萨特在25%偏置碰撞中获得垫底的成绩之后,来自中保研的碰撞测试就彻底火了。很多车主在看到帕萨特如此脆弱的安全性能之后表示十分害怕,还有一些人甚至至今都没弄明白为什么看似结实的帕萨特那么不禁撞。不过越来越多的人知道了这个碰撞测试,并且开始关注它,将其碰撞成绩作为购车参考。就在今天,中保研又公布了下一批即将参加测试的车型名录,并且被醒目地标注为2020年第一批。由于中保研碰撞成绩直..

网友0元买到电烤箱,一小时被撸24万单,导致京东亏损7000万随着互联网时代的飞速发展,网购已经成为了一种流行。最近这几年,国内外的电商平台越来越多,平台之间的竞争越来越大,比如淘宝、京东、天猫、考拉等等的平台为了更受用户的青睐,会经常搞活动,送出大量的优惠券。一般来说,优惠券都是商家提前设置好的,基本上都是满400-40的之类的满减活动,实际优惠的钱并不多。不过,人有疏忽大意,有些平台会设置优惠券时不小心出现漏洞,而这些漏洞一旦被羊毛党发现,就会造成巨大的损失..

汤唯:对于客观的评价 我会一遍遍去看  《大明风华》播出进入尾声 试水电视剧出师不利?   汤唯:对于客观的评价 我会一遍遍去看  52集《大明风华》播出进入尾声。虽然从古装历史剧角度,这部作品无论从制作水准还是故事表达上都以一种显见的方式获得了认可,然而,作为汤唯成名后的第一部电视剧作品,她为《大明风华》带来了高关注度,也承受了大量的争议。“造型丑”、“面无表情,演技被碾压”等负评一时铺天盖地。让人难以相信,小屏幕上的汤唯跟大银幕..

寒门学子当了领导走上贪腐路 与老板们打牌从来不会输  与老板们打牌从来不会输;想换车、换房子,老板“借”给他   昔日寒门学子当了领导 一步步走上贪腐路   黔江区城投集团原董事长张怀东涉嫌违纪违法,涉案金额巨大,已移送司法机关   “和这些老板上桌,你根本不用考虑输了怎么办,因为他们根本不会让你输,这是我第一次感受或者说享受‘业务牌’的感觉,就这样一次、二次,多次以后,也就习以为常了。”   “回到家里打开信封,全新的3万元现金,我将这3万元..

“赞美师娘”论文作者称涉事文章发表后师生关系受影响  “赞美师娘”论文作者称,涉事文章发表后师生关系受影响   中文核心期刊《冰川冻土》上发表的论文《生态经济学集成框架的理论与实践》,大篇幅阐述“导师的崇高感和师娘的优美感”,引发关注。该论文作者为中国科学院寒区旱区环境与工程研究所研究员徐中民,曾获得国家自然科学基金重点项目资助。   今日(1月13日)下午,新京报记者从国家自然科学基金委员会科研诚信建设办公室了解到,目前该办已关注到此事:“具体情..

专家手把手教 贫困户靠“技术活”在家门口致富  专家手把手教 贫困户靠“技术活”在家门口致富  典型派  “就拿我们扶贫产业基地来讲,560亩的土地如果种植一般作物一年的收入也就60万元,如果用来种植黄金百香果,一年收入可达2000万元。”“真没想到,科技真的能够让黄土变‘黄金’。”近日,广西南宁市江南区苏圩镇生态循环农业示范基地组织当地种植户开展黄金百香果技能培训,科技特派员为大家算了一笔账,贫困户的脱贫信心一下子被激发起来。  由于这里的黄金..