55ElasticSearch

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

技术部杨坤大纲ElasticSearch的介绍ElasticSearch的相关概念ElasticSearch及相关插件的安装ElasticSearch常用配置ElasticSearch索引的增、删、改ElasticSearch检索一.ElasticSearch的介绍ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。二.ElasticSearch的概念1.cluster(集群)一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。2.node(节点)一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。3.index(索引)一个索引就是一个拥有几分相似特征的文档的集合(类似于我们在数据库中的库结构),一个索引由一个名字来标识,并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。4.type(类型)在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区(类似于数据库中的表结构),其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。5.document(文档)一个文档是一个可被索引的基础信息单元(类似于表中的一行数据),文档以Json格式来表示6.mappingES的mapping非常类似于静态语言中的数据类型:声明一个变量为int类型的变量,以后这个变量都只能存储int类型的数据。同样的,一个number类型的mapping字段只能存储number类型的数据。同语言的数据类型相比,mapping还有一些其他的含义,mapping不仅告诉ES一个field中是什么类型的值,它还告诉ES如何索引数据以及数据是否能被搜索到。7.shards代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。8.replicas代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。9.river代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中三.ElasticSearch及相关插件的安装elasticsearch安装及自动更新数据文档.docxElasticSearch常用配置1.Clustercluster.name:elasticsearch设置ElasticSearch集群的名字,默认的集群名字为elasticsearch,如果想要让某一ElasticSearch节点加入集群只需指定cluster.name2.Nodenode.name:“FranzKafka“,设置ElasticSearch节点的名字node.master:true,设置节点是否为主节点node.data:true,设置节点是否存储索引分片3.Indexindex.number_of_shards:5,设置索引的分片数,默认为5个分片index.number_of_replicas:1,设置索引的副本数,默认为1个副本4.Pathspath.data:/data/esdata,设置索引数据的存储路径path.logs:/data/eslogs,设置日志数据的存储路径5.NetworkAndHTTP在默认情况下ElasticSearch会绑定IP地址0.0.0.0,并且使用9200-9300端口号监听http协议,使用9300-9400端口号进行节点与节点之间的通讯,端口号之所以是一个区间是如果端口已被占用则会尝试监听下一个端口号。network.host:192.168.85.159,设置ElasticSearch的绑定地址http.port:9200,设置ElasticSearch监听的端口号6.IKindex.analysis.analyzer.ik.type:ik,设置分词器为IK分词器ElasticSearch-Mapping的介绍、索引的建立curl-XPUT'{hospital:{_all:{analyzer:ik},properties:{hospitalid:{type:string,index:not_analyzed,},hospitalnumber:{type:string},hospitalname:{type:string,indexAnalyzer:ik,searchAnalyzer:ik},provinceid:{type:“integer,index:not_analyzed,},}}}‘ElasticSearch索引的建立1.创建语法curl-XPUT'{key:value}'2.修改语法curl-XPUT'{key:value}'3.查询语法curl-XGET'删除语法curl-XDELETE'检索一、执行搜索1.简单字段搜索:match_all/match/match_phrase/term2.布尔搜索:bool-must/must_not/should事例:curl-XPOST'{query:{match_all:{}},sort:{field:{order:desc}},_source:[field1,field2]from:10,size:10}'二、执行过滤器Elasticsearch中的所有的查询都会触发相关度得分的计算。对于那些我们不需要相关度得分的场景下,Elasticsearch以过滤器的形式提供了另一种查询功能。-过滤器不会计算相关度的得分,所以它们在计算上更快一些-过滤器可以被缓存到内存中,这使得在重复的搜索查询上,其要比相应的查询快出许多。事例:curl-XPOST'{query:{filtered:{query:{match_all:{}},filter:{range:{field:{gte:20000,lte:30000}}}}}}'三、聚合搜索聚合提供了分组并统计数据的能力。理解聚合的最简单的方式是将其粗略地等同为SQL的GROUPBY和SQL聚合函数。在Elasticsearch中,你可以在一个响应中同时返回命中的数据和聚合结果。事例:curl-XPOST'{size:0,aggs:{group_by_field1:{terms:{field:field1},aggs:{average_field2:{avg:{field:field2}}}}}}'ElasticSearch支持的数据类型简单类型:string:字符型最常用的integer:整型long:长整型float:浮点型double:双字节型boolean:布尔型复杂类型:array:数组型“lists”:{{“name”:”…”},{“name”:”…”}}object:对象类型“author”:{“type”:”object”,”perperites”:{“name”:{“type”:”string”}}}Thanks

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功