ElasticSearch学习笔记

1  概念对比

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices(索引) -> Types -> Documents -> Fields

 

Elasticsearch的主要概念如下 –

  • 节点 – 它指的是Elasticsearch的单个正在运行的实例。单个物理和虚拟服务器容纳多个节点,这取决于其物理资源的能力,如RAM,存储和处理能力。

  • 集群 – 它是一个或多个节点的集合。 集群为整个数据提供跨所有节点的集合索引和搜索功能。

  • 索引 – 它是不同类型的文档和文档属性的集合。索引还使用分片的概念来提高性能。 例如,一组文档包含社交网络应用的数据。

  • 类型/映射 – 它是共享同一索引中存在的一组公共字段的文档的集合。 例如,索引包含社交网络应用的数据,然后它可以存在用于用户简档数据的特定类型,另一类型可用于消息的数据,以及另一类型可用于评论的数据。

  • 文档 – 它是以JSON格式定义的特定方式的字段集合。每个文档都属于一个类型并驻留在索引中。每个文档都与唯一标识符(称为UID)相关联。

  • 碎片 – 索引被水平细分为碎片。这意味着每个碎片包含文档的所有属性,但包含的数量比索引少。水平分隔使碎片成为一个独立的节点,可以存储在任何节点中。主碎片是索引的原始水平部分,然后这些主碎片被复制到副本碎片中。

  • 副本 – Elasticsearch允许用户创建其索引和分片的副本。 复制不仅有助于在故障情况下增加数据的可用性,而且还通过在这些副本中执行并行搜索操作来提高搜索的性能。

 2   我们对REST API创建一个PUT请求到一个由索引名称,类型名称和ID组成的URL。 也就是:http://localhost:9200/<index>/<type>/[<id>]

3   json  \n  作为分隔符

{"index":{"_index":"schools", "_type":"school", "_id":"1"}}
{"name":"Central School", "description":"CBSE Affiliation", "street":"Nagan","city":"paprola", "state":"HP", "zip":"176115", "location":[31.8955385, 76.8380405],"fees":2000, "tags":["Senior Secondary", "beautiful campus"], "rating":"3.5"}
{"index":{"_index":"schools", "_type":"school", "_id":"2"}}
{"name":"Saint Paul School", "description":"ICSE Afiliation", "street":"Dawarka", "city":"Delhi", "state":"Delhi", "zip":"110075","location":[28.5733056, 77.0122136], "fees":5000,"tags":["Good Faculty", "Great Sports"], "rating":"4.5"}
{"index":{"_index":"schools", "_type":"school", "_id":"3"}}
{"name":"Crescent School", "description":"State Board Affiliation", "street":"Tonk Road", "city":"Jaipur", "state":"RJ", "zip":"176114","location":[26.8535922, 75.7923988],"fees":2500, "tags":["Well equipped labs"], "rating":"4.5"}

 

4     PUT   http://localhost:9200/library       {"settings":{"index":{"number_of_shards":5,"number_of_replicas":1}}}

   GET http://localhost:9200/library/_settings    得到library库的settings如下:

    { "library": { "settings": { "index": { "creation_date": "1497333295934", "number_of_shards": "5", "number_of_replicas": "1",     "version": { "created": "1070399" }, "uuid": "r4wwLI-QT3iSjjynWFFKLA" } } } }

  可以用GET   http://localhost:9200/library,schools/_settings  同时得到两个库的索引

  可以用GET   http://localhost:9200/_all/_settings  同时得到两个库的索引

 

 

  PUT   http://localhost:9200/library/books/1    

       {"title":"ElasticSearch the definitive guide","name":{"first":"He","last":"ZZ"},"publish_date":"2015-02-06","price":"50.12"}

 

  POST   http://localhost:9200/library/books/1/_update

    {"doc":{"price":"10"}}

   GET   http://localhost:9200/_mget 

   

{"docs":[{"_index":"library","_type":"books","_id":1},{"_index":"library","_type":"books","id":2},{"_index":"schools","_type":"school","id":1}]}

   

 

ElasticSearch的查询----基本查询    组合查询    filter

 

 

 

 

 

    

posted on 2017-06-12 16:13  编世界  阅读(173)  评论(0编辑  收藏  举报