ElasticSearch快速入门( 二 )


3) 文档
文档是可索引信息的基本单元 , 以JSON表示 。你可以用其来定义单个产品信息或是员工信息 。我们可以把文档理 解为数据库文档中的行列数据 。在索引/类型中 , 您可以存储任意数量的文档 。文档有几个共同不可缺的属性 , 分 别为 _index, _type, _id, 针对特定一个或一类文档进行操作时 , 必须指定这些属性 。最后要提醒大家的是 , 虽然文档物理上是驻留在索引中 , 但实际上文档必须索引/分配给索引中的类型 。
4) 索引
索引是具有某些相似特征的文档的集合 , 它和数据库中的索引概念并不十分相同 。我们可以把索引理解为数据库文 档中的数据库 。事实上 , 我们的数据被存储和索引在分片(shards)中 , 索引只是一个把一个或多个分片分组在一起 的逻辑空间 。然而 , 这只是一些内部细节——我们的程序完全不用关心分片 。
5) 类型
在索引中 , 我们可以定义一个或多个类型 。类型是索引的逻辑类别/分区 , 其语义完全由开发者决定 。通常 , 为具 有一组公共字段的文档定义类型 。例如 , 假设开发者运行博客平台并将所有数据存储在一个索引中 。在此索引中 ,  我们可以为用户数据定义类型 , 为博客数据定义另一种类型 , 并为注释数据定义另一种类型 。我们可以把索引理解 成数据库文档中的表 。
6) 分片和复制
理论上 , 索引可以存储尽可能多的数据 , 但是这种情况下性能往往不太乐观 , 或者常见的磁盘容量限制也不能允 许 。所以 Elasticsearch 提供了类似于 MongoDB 中的分片功能 , 该功能能将索引细分为多个分片 。每个分片本身是一个功能完全和独立的"索引" , 可以托管在集群中的任何节点上 。
同样的 , 有分片技术来处理数据量增长快速的问题 , 就意味着需要复制技术来应对这种过程中(其实不只是该过 程 , 任何情况下都应该有安全意识)数据安全的问题 。Elasticsearch 允许您将索引分片的一个或多个副本转换为所谓的副本分片 。复制技术为我们提供了数据的高可用性和搜索吞吐的扩展性 。不过需要注意的是 , 副本分片从不分 配在与从其复制的原始/主分片相同的节点上 。
总而言之 , 每个索引可以拆分为多个分片 。索引也可以复制为零(意味着没有副本)或更多次 。一旦复制 , 每个索 引将具有主分片(从索引复制的原始分片)和副本分片(主分片的副本) 。开发者可以在创建索引时就为每个索引 定义分片和副本的数量 。创建索引后 , 可以随时动态更改副本数 , 但不能在此过程后随即更改分片数 。
三、ES的安装与服务启动1、下载ES的压缩包Window 系统下载 zip 版本 , linux 系统下载 tar 版本
将下载的zip解压到指定的磁盘上
2、ES服务的目录结构

ElasticSearch快速入门

文章插图
 
bin 存放 elasticSearch 运行命令 con?g 存放配置文件 lib 存放 elasticSearch 运行依赖 jar 包 modules 存放elasticSearch 模块 plugins 存放插件
3、ES服务的启动指定ES安装目录下的bin下的elasticsearch.bat
ElasticSearch快速入门

文章插图
 
启动日志信息如下:
ElasticSearch快速入门

文章插图
 
4、访问ES服务
ElasticSearch快速入门

文章插图
 
四、通过java去访问ES服务
1、搭建环境
创建Maven工厂 , 添加ES的客户端坐标
ElasticSearch快速入门

文章插图
 
2、创建索引
ElasticSearch快速入门

文章插图
 

ElasticSearch快速入门

文章插图
 

ElasticSearch快速入门

文章插图
 

ElasticSearch快速入门

文章插图
 




推荐阅读