表白网站建设江西省做网站
表白网站建设,江西省做网站,seo网络推广师招聘,太平鸟品牌门户网站建设1. ES 基础一网打尽 1.1 ES定义 ESelaticsearch简写#xff0c; Elasticsearch是一个开源的高扩展的分布式全文检索引擎#xff0c;它可以近乎实时的存储、检索数据#xff1b;本身扩展性很好#xff0c;可以扩展到上百台服务器#xff0c;处理PB级别的数据。 Elasticsear… 1. ES 基础一网打尽 1.1 ES定义 ESelaticsearch简写 Elasticsearch是一个开源的高扩展的分布式全文检索引擎它可以近乎实时的存储、检索数据本身扩展性很好可以扩展到上百台服务器处理PB级别的数据。 Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性从而让全文搜索变得简单。 1.2 Lucene与ES关系 1Lucene只是一个库。想要使用它你必须使用Java来作为开发语言并将其直接集成到你的应用中更糟糕的是Lucene非常复杂你需要深入了解检索的相关知识来理解它是如何工作的。 2Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性从而让全文搜索变得简单。 1.3 ES主要解决问题 1检索相关数据 2返回统计结果 3速度要快。 1.4 ES工作原理 当ElasticSearch的节点启动后它会利用多播(multicast)(或者单播如果用户更改了配置)寻找集群中的其它节点并与之建立连接。这个过程如下图所示 1.5 ES核心概念 1Cluster集群。ES可以作为一个独立的单个搜索服务器。不过为了处理大型数据集实现容错和高可用性ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。 2Node节点。形成集群的每个服务器称为节点。 3Shard分片。当有大量的文档时由于内存的限制、磁盘处理能力不足、无法足够快的响应客户端的请求等一个节点可能不够。这种情况下数据可以分为较小的分片。每个分片放到不同的服务器上。 当你查询的索引分布在多个分片上时ES会把查询发送给每个相关的分片并将结果组合在一起而应用程序并不知道分片的存在。即这个过程对用户来说是透明的。 4Replia副本。为提高查询吞吐量或实现高可用性可以使用分片副本。 副本是一个分片的精确复制每个分片可以有零个或多个副本。ES中可以有许多相同的分片其中之一被选择更改索引操作这种特殊的分片称为主分片。 当主分片丢失时如该分片所在的数据不可用时集群将副本提升为新的主分片。 5全文检索。全文检索就是对一篇文章进行索引可以根据关键字搜索类似于mysql里的like语句。 全文索引就是把内容根据词的意义进行分词然后分别创建索引例如”你们的激情是因为什么事情来的” 可能会被分词成“你们“”激情““什么事情“”来“ 等token这样当你搜索“你们” 或者 “激情” 都会把这句搜出来。 1.6 ES数据架构的主要概念与关系数据库Mysql对比 1关系型数据库中的数据库DataBase等价于ES中的索引Index 2一个数据库下面有N张表Table等价于1个索引Index下面有N多类型Type 3一个数据库表Table下的数据由多行ROW多列column属性组成等价于1个Type由多个文档Document和多Field组成。 4在一个关系型数据库里面schema定义了表、每个表的字段还有表和字段之间的关系。 与之对应的在ES中Mapping定义索引下的Type的字段处理规则即索引如何建立、索引类型、是否保存原始索引JSON文档、是否压缩原始JSON文档、是否需要分词处理、如何进行分词处理等。 5在数据库中的增insert、删delete、改update、查search操作等价于ES中的增PUT/POST、删Delete、改_update、查GET. 1.7 ELK是什么 ELKelasticsearchLogstashkibana elasticsearch后台分布式存储以及全文检索 logstash: 日志加工、“搬运工” kibana数据可视化展示。 ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。 三者相互配合取长补短共同完成分布式大数据处理工作。 2. ES特点和优势 1分布式实时文件存储可将每一个字段存入索引使其可以被检索到。 2实时分析的分布式搜索引擎。 分布式索引分拆成多个分片每个分片可有零个或多个副本。集群中的每个数据节点都可承载一个或多个分片并且协调和处理各种操作 负载再平衡和路由在大多数情况下自动完成。 3可以扩展到上百台服务器处理PB级别的结构化或非结构化数据。也可以运行在单台PC上已测试 4支持插件机制分词插件、同步插件、Hadoop插件、可视化插件等。 3、ES性能 3.1 性能结果展示 1硬件配置 CPU 16核 AuthenticAMD 内存 总量32GB 硬盘 总量500GB 非SSD 2在上述硬件指标的基础上测试性能如下 1平均索引吞吐量 12307docs/s每个文档大小40B/docs 2平均CPU使用率 887.7%16核平均每核55.48% 3构建索引大小 3.30111 GB 4总写入量 20.2123 GB 5测试总耗时 28m 54s. 3.2必要的Head、kibana、IK中文分词、graph等插件的详细安装和使用。 http://blog.csdn.net/column/details/deep-elasticsearch.html 4、Elasticsearch增、删、改、查操作深入详解 S Restful API GET、POST、PUT、DELETE、HEAD含义 1GET获取请求对象的当前状态。 2POST改变对象的当前状态。 3PUT创建一个对象。 4DELETE销毁对象。 5HEAD请求获取对象的基础信息。 以上表为依据 ES中的新建文档在Index/type下相当于Mysql中在某Database的Table下插入一行数据。 4.1新建文档类似mysql insert插入操作 http://localhost:9200/blog/ariticle/1 put
{
title:New version of Elasticsearch released!,
content:Version 1.0 released today!,
tags:[announce,elasticsearch,release]
} 创建成功如下显示 {- _index: blog,
- _type: ariticle,
- _id: 1 -d,
- _version: 1,
- _shards: {- total: 2,- successful: 1,- failed: 0
- },
- created: true} 4.2 检索文档类似mysql search 搜索select*操作 http://localhost:9200/blog/ariticle/1/ GET 检索结果如下 {- _index: blog,
- _type: ariticle,
- _id: 1,
- _version: 1,
- found: true,
- _source: {- title: New version of Elasticsearch released!,- content: Version 1.0 released today!,- tags: [- announce- ,- elasticsearch- ,- release- ]
- }} 如果未找到会提示 {- _index: blog,
- _type: ariticle,
- _id: 11,
- found: false} 查询全部文档如下 具体某个细节内容检索 查询举例1查询cotent列包含版本为1.0的信息。 http://localhost:9200/blog/ _search?prettyqcontent:1.0 {- took: 2,
- timed_out: false,
- _shards: {- total: 5,- successful: 5,- failed: 0
- },
- hits: {- total: 1,- max_score: 0.8784157,- hits: [- {- _index: blog,- _type: ariticle,- _id: 6,- _score: 0.8784157,- _source: {- title: deep Elasticsearch!,- content: Version 1.0!,- tags: [- deep- ,- elasticsearch- ]- }- }- ]
- }} 查询举例2查询书名title中包含“enhance”字段的数据信息 [root5b9dbaaa1a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘ { query : {term :{title : enhance }}}
{took : 189,timed_out : false,_shards : {total : 5,successful : 5,failed : 0},hits : {total : 2,max_score : 0.8784157,hits : [ {_index : blog,_type : ariticle,_id : 4,_score : 0.8784157,_source : {title : enhance Elasticsearch!,content : Version 4.0!,tags : [ enhance, elasticsearch ]}}, {_index : blog,_type : ariticle,_id : 5,_score : 0.15342641,_source : {title : enhance Elasticsearch for university!,content : Version 5.0!,tags : [ enhance, elasticsearch ]}} ]}
} 查询举例3查询ID值为3,5,7的数据信息 [root5b9dbaaa148a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d { query : {
terms :
{_id : [ 3, 5, 7 ] }
}
}
{took : 5,timed_out : false,_shards : {total : 5,successful : 5,failed : 0},hits : {total : 3,max_score : 0.19245009,hits : [ {_index : blog,_type : ariticle,_id : 5,_score : 0.19245009,_source : {title : enhance Elasticsearch for university!,content : Version 5.0!,tags : [ enhance, elasticsearch ]}}, {_index : blog,_type : ariticle,_id : 7,_score : 0.19245009,_source : {title : deep Elasticsearch for university!,content : Version 2.0!,tags : [ deep, elasticsearch, university ]}}, {_index : blog,_type : ariticle,_id : 3,_score : 0.19245009,_source : {title : init Elasticsearch for university!,content : Version 3.0!,tags : [ initialize, elasticsearch ]}} ]}
} 4.3、更新文档类似mysql update操作 http://localhost:9200/blog/ariticle/1/_update/ POST {“script”:”ctx._source.content \”new version 2.0 20160714\”“} 更新后结果显示 {“_index”: “blog”,
“_type”: “ariticle”,
“_id”: “1”,
“_version”: 2,
“_shards”: {
”total”: 2,
“successful”: 1,
“failed”: 0
}
} 查询验证更新后结果对比可知版本号已经更新完毕 http://localhost:9200/blog/ariticle/1/ {- _index: blog,
- _type: ariticle,
- _id: 1,
- _version: 2,
- found: true,
- _source: {- title: New version of Elasticsearch released!,- content: new version 2.0 20160714,- tags: [- announce- ,- elasticsearch- ,- release- ]
- }} 4.4、删除文档类似mysql delete操作 http://localhost:9200/blog/ariticle/8/回结果 {- found: true,
- _index: blog,
- _type: ariticle,
- _id: 8,
- _version: 2,
- _shards: {- total: 2,- successful: 1,- failed: 0
- }} 参考Elasticsearch增、删、改、查操作深入详解 参考Elasticsearch学习请先看这一篇转载于:https://www.cnblogs.com/heqiyoujing/p/11146164.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91774.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!