Elastic Search成长之路【二】- es是什么

 一、Elasticsearch 是什么?

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

二、Elasticsearch 的用途是什么?

elasticsearch可在速度上和可拓展上表现出色,而且还能够索引多种类型的内容。也就意味着他可以应用于很多场景实例:

以下是官方列举的例子:

  • 应用程序搜索
  • 网站搜索
  • 企业搜索
  • 日志处理和分析
  • 基础设施指标和容器监测
  • 应用程序性能监测
  • 地理空间数据分析和可视化
  • 安全分析
  • 业务分析

三、Elasticsearch 常见的名词说明

1、索引(index)

索引指相互关联的文档集合。文档使用json形式存储。每个文档有个一些键和存储的值对应。其实索引就相当于关系型数据库中的一个数据库;而上诉说到的键值,也就如表设计一样了(此说法只能协助理解,实际还是有不少区别的 )。index是存在分片上的,具体分多少片就要自己配置了多少个分片了。

那问题来了,是不是分片越多也好呢。不是的。es搜索的时候会去每个分片搜索,最后把搜索的结果合并,而返回个客户端。举个例子:如果你需要搜索10个index,每个index有5个分片,那个协调这个搜索的节点就需要合并10*5个搜索结果;如果有太多的分片结果需要合并,或者请求一个结果巨大的请求,合并任务都需要消耗大量的cpu和内存资源。

2、mapping       

定义index下的字段,以及字段类型;

指定字段是否分词,分词器等;

mapping可以在创建索引的时候直接指定,或者创建索引后再配置mapping

3、type

首先说明的是在7.x版本开始,es剔除了这个东西;6.x默认只能是一个type。默认为_doc。

使用 type 允许我们在一个 index 里存储多种类型的数据,这样就可以减少 index 的数量。 再搜索文档时,使用_type指定type可以过虑。但是在查询一个type和多个type相比是没有额外的开销。多type是有限制性的:要求每个type中的字段尽可能相同,从而达到避免稀疏。多type不利于索引的压缩存储,这个应该也是es取消type的原因吧。

4、document

document作为约定数据结构的存储单位。index中存储的元数据。角色和关系型数据中存储的数据一致。

 

 

你可能感兴趣的:(搜索引擎)