elastic search弹性搜索

前言

公司要做的查询特别复杂,涉及到多表查询,主要是用mysql存储的,而且数据量目前已经是万级,数据量只增不减,之前用的是mysql查的,但是特别慢,因此现在打算用elastic search来做。对es有一个大概的了解,知道怎么用先。

 

简介
ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。

同时ES还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。

可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。

ES就是为高可用和可扩展而生的。一方面可以通过升级硬件来完成系统扩展,称为垂直或向上扩展(Vertical Scale/Scaling Up)。

另一方面,增加更多的服务器来完成系统扩展,称为水平扩展或者向外扩展(Horizontal Scale/Scaling Out)。尽管ES能够利用更强劲的硬件,但是垂直扩展毕竟还是有它的极限。真正的可扩展性来自于水平扩展,通过向集群中添加更多的节点来分担负载,增加可靠性。ES天生就是分布式的,它知道如何管理多个节点来完成扩展和实现高可用性。意味应用不需要做任何的改动。

设计结构
1、逻辑设计

文档

文档是可以被索引的信息的基本单位,它包含几个重要的属性:

是自我包含的。一篇文档同时包含字段和他们的取值。
是层次型的。文档中还可以包含新的文档,一个字段的取值可以是简单的,例如location字段的取值可以是字符串,还可以包含其他字段和取值,比如可以同时包含城市和街道地址。
拥有灵活的结构。文档不依赖于预先定义的模式。也就是说并非所有的文档都需要拥有相同的字段,并不受限于同一个模式
{

  "name":"meeting",

  "location":"office",

  "organizer":"yanping"

}

{

  "name":"meeting",

  "location":{

    "name":"sheshouzuo",

       "date":"2019-6-28"

  },

  "memebers":["leio","shiyi"]

}

类型

类型是文档的逻辑容器,类似于表格是行的容器。在不同的类型中,最好放入不同的结构的文档。

字段

ES中,每个文档,其实是以json形式存储的。而一个文档可以被视为多个字段的集合。

映射

每个类型中字段的定义称为映射。例如,name字段映射为String。

索引

索引是映射类型的容器一个ES的索引非常像关系型世界中的数据库,是独立的大量文档集合。

关系型数据库与ES的结构上的对比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值