Elasticsearch 的索引創建

  1. ElasticSearch是文檔型數據庫,索引(Index)定義了文檔的邏輯存儲和字段類型,每個索引可以包含多個文檔類型,文檔類型是文檔的集合,文檔以索引定義的邏輯存儲模型,比如,指定分片和副本的數量,配置刷新頻率,分配分析器等,存儲在索引中的海量文檔分佈式存儲在ElasticSearch集羣中。
  2. ElasticSearch是基於Lucene框架的全文搜索引擎,將所有文檔的信息寫入到倒排索引(Inverted Index)的數據結構中,倒排索引建立的是索引中詞和文檔之間的映射關係,在倒排索引中,數據是面向詞(Term)而不是面向文檔的。
  3. ElasticSearch的對象模型,跟關係型數據庫模型相比:

        1> 索引(Index):相當於數據庫,用於定義文檔類型的存儲;在同一個索引中,同一個字段只能定義一個數據類型;
        2> 文檔類型(Type):相當於關係表,用於描述文檔中的各個字段的定義;不同的文檔類型,能夠存儲不同的字段,服務於不同的查詢請求;
        3> 文檔(Document):相當於關係表的數據行,存儲數據的載體,包含一個或多個存有數據的字段;
        4> 字段(Field):文檔的一個Key/Value對;
        5> 詞(Term):表示文本中的一個單詞;
        6> 標記(Token):表示在字段中出現的詞,由該詞的文本、偏移量(開始和結束)以及類型組成;

     4. 索引是由段(Segment)組成的,段存儲在硬盤(Disk)文件中,段不是實時更新的,這意味着,段在寫入磁盤後,就不再被更新。ElasticSearch引擎把被刪除的文檔的信息存儲在一個單獨的文件中,在搜索數據時,ElasticSearch引擎首先從段中查詢,再從查詢結果中過濾被刪除的文檔,這意味着,段中存儲着“被刪除”的文檔,這使得段中含有”正常文檔“的密度降低。多個段可以通過段合併(Segment Merge)操作把“已刪除”的文檔將從段中物理刪除,把未刪除的文檔合併到一個新段中,新段中沒有”已刪除文檔“,因此,段合併操作能夠提高索引的查找速度,但段合併是IO密集型的操作,需要消耗大量的硬盤IO。

  • 創建索引

在創建索引之前,首先了解RESTful API的調用風格,在管理和使用ElasticSearch服務時,常用的HTTP動詞有下面五個:

    GET 請求:獲取服務器中的對象
        相當於SQL的Select命令
        GET /blogs:列出所有博客
    POST 請求:在服務器上更新對象
        相當於SQL的Update命令
        POST /blogs/ID:更新指定的博客
    PUT 請求:在服務器上創建對象
        相當於SQL的Create命令
        PUT /blogs/ID:新建一個博客
    DELETE 請求:刪除服務器中的對象
        相當於SQL的Delete命令
    DELETE /blogs/ID:刪除指定的博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章