说明

简介

Elasticsearch是一个基于Lucene(开源全文检索引擎架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎)的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,用Java语言开发的,是一种流行的企业级搜索引擎,能够达到实时搜索,稳定,可靠,快速,安装使用方便等优点。

特点

  1. 可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司
  2. Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)
  3. 对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂
  4. 数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个

功能

  1. 分布式的搜索引擎和数据分析引擎
  2. 全文检索,结构化检索,数据分析
  3. 对海量数据进行近实时的处理

在线转换工具

http://www.ischoolbar.com/EsParser/

属性

properties表示表的字段

  1. type字段类型,所有得字段都设置成了string,是因为在查询和编码过程中,有些类型不能很好的被转换,例如boolean
  2. store是否存储,属性有yes或者no,无论那种属性都会被存储,但如果设置成no,在查询的时候是无法用此属性作为查询项的,基于拓展和业务方便维护,建议使用yes
  3. index是否索引,属性有not_analyzed(分词不分析)、analyzed(分词分析)、no(不分析不分词)
  4. analyzer使用哪种分词器,在安装es的时候会自己安装分词器,例如IK分词器,在此指定分词的时候使用的是哪种分词器
  5. search_analyzer使用哪种分词器,但不是在入库的时候,而是在做查询的时候使用哪种分词器
  6. ignore_above对超过 ignore_above 的字符串,analyzer 不会进行处理;所以就不会索引起来。导致的结果就是最终搜索引擎搜索不到了。这个选项主要对 not_analyzed 字段有用,这些字段通常用来进行过滤、聚合和排序。而且这些字段都是结构化的,所以一般不会允许在这些字段中索引过长的项。
  7. format日期格式要求,例如设置为”yyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis”

dynamic表示是否使用动态映射,属性有

  1. true默认值,动态添加字段
  2. false忽略新字段
  3. strict如果碰到陌生字段,抛出异常

settings表示设置

  1. num_of_shards设置分片数量,默认为5
  2. num_of_replicas设置副本数量,默认为1