一、概述
Elasticsearch是一個開源的全文搜索引擎,主要用於處理大量數據的分散式存儲和檢索,被廣泛應用於數據分析、企業搜索、安全分析等領域。在Elasticsearch中,文檔是數據的基本單位,索引則是文檔的集合。文檔可以是任意的結構化或非結構化數據,例如JSON格式的文件、XML文件等。
在Elasticsearch中,文檔的存儲和查詢需要用到索引,索引類似於關係型資料庫中的表,用於存儲和管理文檔數據。一個索引可以包含多個文檔,每個文檔都有一個唯一的ID用於標識。索引可以分片存儲,可以擴展到成千上萬的節點和數百萬億個文檔。
二、文檔類型
Elasticsearch支持多種文檔類型,最常見的類型是JSON格式的文檔。除此之外,Elasticsearch還支持XML、CSV、TSV等格式的文檔。在索引文檔之前,需要定義文檔的類型並指定其映射關係。文檔類型是用於描述文檔數據結構的元數據類型,類似於關係型資料庫中的表結構定義。
下面是一個定義映射關係的示例:
PUT /test { "mappings": { "properties": { "title": { "type": "text" }, "description": { "type": "text" }, "published_at": { "type": "date" } } } }
上面的代碼定義了一個名稱為test的索引,並定義了文檔類型中的三個屬性:title、description和published_at。title和description的類型為text,published_at的類型為date。這些屬性的類型和其他屬性的數量、名稱和類型都是可以根據業務需求靈活定義的。
三、文檔操作
1. 創建文檔
創建文檔是指向索引中添加一條新的文檔記錄。文檔的創建需要指定文檔的ID和文檔的數據,例如:
PUT /test/_doc/1 { "title": "Elasticsearch文檔詳解", "description": "介紹Elasticsearch文檔的相關知識", "published_at": "2022-02-22T10:00:00.000Z" }
上面的代碼向test索引添加了一條文檔記錄,ID為1,數據包含三個屬性:title、description和published_at。
2. 更新文檔
更新文檔是指修改索引中已經存在的文檔記錄。更新文檔時需要指定文檔的ID和要修改的數據,例如:
POST /test/_doc/1/_update { "doc": { "description": "介紹Elasticsearch文檔的相關知識和操作" } }
上面的代碼將ID為1的文檔記錄的description屬性修改為”介紹Elasticsearch文檔的相關知識和操作”。
3. 刪除文檔
刪除文檔是指從索引中刪除一條文檔記錄。刪除文檔時需要指定文檔的ID,例如:
DELETE /test/_doc/1
上面的代碼刪除了ID為1的文檔記錄。
四、文檔查詢
文檔查詢是指在索引中查找符合條件的文檔。Elasticsearch支持多種類型的查詢,例如簡單查詢、複合查詢、區間查詢、模糊查詢、正則表達式查詢等。下面是一個使用簡單查詢的示例:
GET /test/_search { "query": { "match": { "title": "Elasticsearch文檔詳解" } } }
上面的代碼查詢test索引中所有title屬性包含”Elasticsearch文檔詳解”的文檔。Elasticsearch支持多種查詢語句,可以根據具體的需求選擇合適的查詢方式。
五、索引操作
1. 創建索引
創建索引是指在Elasticsearch中新建一個索引。創建索引時需要指定索引的名稱、索引的設置和映射關係,例如:
PUT /index_name { "settings": { "number_of_shards": 2, "number_of_replicas": 1 }, "mappings": { "properties": { "title": { "type": "text" }, "description": { "type": "text" }, "published_at": { "type": "date" } } } }
上面的代碼創建了一個名稱為index_name的索引,並定義了該索引的設置和文檔類型。
2. 刪除索引
刪除索引是指從Elasticsearch中刪除一個索引。刪除索引時需要指定索引的名稱,例如:
DELETE /index_name
上面的代碼刪除了名稱為index_name的索引。
3. 更新索引
更新索引是指修改已經存在的索引的設置和映射關係。更新索引時需要指定索引的名稱和要修改的屬性,例如:
PUT /index_name/_settings { "settings": { "number_of_replicas": 2 } }
上面的代碼修改了名稱為index_name的索引的副本數量為2。
六、結語
文檔是Elasticsearch中非常重要的概念,對於存儲和查詢數據都有著重要作用。本文從文檔類型、文檔操作、文檔查詢和索引操作四個方面對Elasticsearch的文檔進行了詳細的講解,希望能夠對讀者有所幫助。
原創文章,作者:XIDFW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370082.html