Elaticsearch,简称为es, es是⼀个开源的⾼扩展的分布式全⽂检索引擎,它可以近乎实时的存储、检索 数据;本⾝扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使⽤Java开发并使⽤ Lucene作为其核⼼来实现所有索引和搜索的功能,但是它的⽬的是通过简单的RESTful API来隐藏 Lucene的复杂性,从⽽让全⽂搜索变得简单。
2.ElasticSearch能干什么我们在日常开发中,数据库也能做到存储、搜索、分析。相对于数据库,Elasticsearch的强大之处就是可以模糊查询。相对于数据库,Elasticsearch对模糊搜索的搜索速度很快,从Elasticsearch搜索到的数据可以根据评分进行过滤,返回评分高的数据,同时它能匹配有相关性的记录。
3.ElasticSearch相关概念lasticsearch是⾯向⽂档的,这意味着它可以存储整个对象或⽂档。然⽽它不仅仅是存储,还会索引每个⽂档的内容使之可以被搜索。在Elasticsearch中,你可以对⽂档进⾏索引、搜索、排序、过滤。Elasticsearch⽐传统关系型数据库如下:
Relational DB:Elasticsearch,Databases:Indices,Tables:Types,Rows:documents,Columns:Fields
3.1索引 index⼀个索引就是⼀个拥有⼏分相似特征的⽂档的集合。⽐如说,你可以有⼀个客户数据的索引,另⼀个产 品⽬录的索引,还有⼀个订单数据的索引。⼀个索引由⼀个名字来标识(必须全部是⼩写字母的),并 且当我们要对对应于这个索引中的⽂档进⾏索引、搜索、更新和删除的时候,都要使⽤到这个名字。在 ⼀个集群中,可以定义任意多的索引。
3.2类型 type在⼀个索引中,你可以定义⼀种或多种类型。⼀个类型是你的索引的⼀个逻辑上的分类/分区,其语义 完全由你来定。通常,会为具有⼀组共同字段的⽂档定义⼀个类型。⽐如说,我们假设你运营⼀个博客 平台并且将你所有的数据存储到⼀个索引中。在这个索引中,你可以为⽤户数据定义⼀个类型,为博客 数据定义另⼀个类型,当然,也可以为评论数据定义另⼀个类型。
3.3字段Field相当于是数据表的字段,对⽂档数据根据不同属性进⾏的分类标识
3.4映射 mappingmapping是处理数据的⽅式和规则⽅⾯做⼀些限制,如某个字段的数据类型、默认值、分析器、是否被 索引等等,这些都是映射⾥⾯可以设置的,其它就是处理es⾥⾯数据的⼀些使⽤规则设置也叫做映射, 按着最优规则处理数据对性能提⾼很⼤,因此才需要建⽴映射,并且需要思考如何建⽴映射才能对性能 更好。
3.5⽂档 document⼀个⽂档是⼀个可被索引的基础信息单元。⽐如,你可以拥有某⼀个客户的⽂档,某⼀个产品的⼀个⽂ 档,当然,也可以拥有某个订单的⼀个⽂档。⽂档以JSON(Javascript Object Notation)格式来表⽰, ⽽JSON是⼀个到处存在的互联⽹数据交互格式。 在⼀个index/type⾥⾯,你可以存储任意多的⽂档。注意,尽管⼀个⽂档,物理上存在于⼀个索引之 中,⽂档必须被索引/赋予⼀个索引的type。



