<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## 核心概念 ### 索引<Index> **`一個索引就是一個擁有幾分相似特征的文檔的集合`**。比如說,你可以有一個商品數據的索引,一個訂單數據的索引,還有一個用戶數據的索引。**`一個索引由一個名字來標識`**`(必須全部是小寫字母的)`**,**并且當我們要對這個索引中的文檔進行索引、搜索、更新和刪除的時候,都要使用到這個名字。 ### 映射<Mapping> **`映射是定義一個文檔和它所包含的字段如何被存儲和索引的過程`**。在默認配置下,ES可以根據插入的數據`自動地創建mapping,也可以手動創建mapping`。 mapping中主要包括字段名、字段類型等 ### 文檔<Document> **`文檔是索引中存儲的一條條數據。一條文檔是一個可被索引的最小單元`**。ES中的文檔采用了輕量級的JSON格式數據來表示。 --- ## 基本操作 ### 索引<index> #### 創建 ```markdown # 1.創建索引 - PUT /索引名 ====> PUT /products - 注意: 1.ES中索引健康轉態 red(索引不可用) 、yellwo(索引可用,存在風險)、green(健康) 2.默認ES在創建索引時回為索引創建1個備份索引和一個primary索引 # 2.創建索引 進行索引分片配置 - PUT /products { "settings": { "number_of_shards": 1, #指定主分片的數量 "number_of_replicas": 0 #指定副本分片的數量 } } ``` ![](https://img.kancloud.cn/1f/b5/1fb50ec9a8cfb652b8287473280321ba_890x98.png) #### 查詢 ```markdown # 查詢索引 - GET /_cat/indices?v ``` ![](https://img.kancloud.cn/f9/71/f971d316d9d1e65c8137f0a708d61d6a_892x98.png) #### 刪除 ```markdown # 3.刪除索引 - DELETE /索引名 =====> DELETE /products - DELETE /* `*代表通配符,代表所有索引` ``` ![](https://img.kancloud.cn/14/1d/141d74d12b163408dc5dd70551e13c5e_898x126.png) ### 映射<mapping> #### 創建 字符串類型: keyword 關鍵字 關鍵詞 、text 一段文本 數字類型:integer long 小數類型:float double 布爾類型:boolean 日期類型:date ```markdown # 1.創建索引&映射 ``` ```json PUT /products { "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "properties": { "title":{ "type": "keyword" }, "price":{ "type": "double" }, "created_at":{ "type": "date" }, "description":{ "type": "text" } } } } ``` ![](https://img.kancloud.cn/84/ee/84ee30181d9f31d302da2aae35d75c1f_892x534.png) > 說明: ES中支持字段類型非常豐富,如:text、keyword、integer、long、ip 等。更多參見https://www.elastic.co/guide/en/elasticsearch/reference/7.15/mapping-types.html #### 查詢 ```markdown # 1.查看某個索引的映射 - GET /索引名/_mapping =====> GET /products/_mapping ``` ![](https://img.kancloud.cn/9c/76/9c76655f9b8191061d0dd8a8fa715b58_892x488.png) ### 文檔<document> #### 添加文檔 ```http POST /products/_doc/1 #指定文檔id { "title":"iphone13", "price":8999.99, "created_at":"2021-09-15", "description":"iPhone 13屏幕采用6.1英寸OLED屏幕。" } ``` ```http POST /products/_doc/ #自動生成文檔id { "title":"iphone14", "price":8999.99, "created_at":"2021-09-15", "description":"iPhone 13屏幕采用6.8英寸OLED屏幕" } ``` ```json { "_index" : "products", "_type" : "_doc", "_id" : "sjfYnXwBVVbJgt24PlVU", "_version" : 1, "result" : "created", "_shards" : { "total" : 1, "successful" : 1, "failed" : 0 }, "_seq_no" : 3, "_primary_term" : 1 } ``` #### 查詢文檔 ```json GET /products/_doc/1 ``` ```json { "_index" : "products", "_type" : "_doc", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "title" : "iphone13", "price" : 8999.99, "created_at" : "2021-09-15", "description" : "iPhone 13屏幕采用6.1英寸OLED屏幕" } } ``` #### 刪除文檔 ```json DELETE /products/_doc/1 ``` ```json { "_index" : "products", "_type" : "_doc", "_id" : "1", "_version" : 2, "result" : "deleted", "_shards" : { "total" : 1, "successful" : 1, "failed" : 0 }, "_seq_no" : 2, "_primary_term" : 1 } ``` #### 更新文檔 ```http PUT /products/_doc/sjfYnXwBVVbJgt24PlVU { "title":"iphon15" } ``` > 說明: 這種更新方式是先刪除原始文檔,在將更新文檔以新的內容插入。 ```http POST /products/_doc/sjfYnXwBVVbJgt24PlVU/_update { "doc" : { "title" : "iphon15" } } ``` > 說明: 這種方式可以將數據原始內容保存,并在此基礎上更新。 #### 批量操作 ```http POST /products/_doc/_bulk #批量索引兩條文檔 {"index":{"_id":"1"}} {"title":"iphone14","price":8999.99,"created_at":"2021-09-15","description":"iPhone 13屏幕采用6.8英寸OLED屏幕"} {"index":{"_id":"2"}} {"title":"iphone15","price":8999.99,"created_at":"2021-09-15","description":"iPhone 15屏幕采用10.8英寸OLED屏幕"} ``` ```http POST /products/_doc/_bulk #更新文檔同時刪除文檔 {"update":{"_id":"1"}} {"doc":{"title":"iphone17"}} {"delete":{"_id":2}} {"index":{}} {"title":"iphone19","price":8999.99,"created_at":"2021-09-15","description":"iPhone 19屏幕采用61.8英寸OLED屏幕"} ``` > 說明:批量時不會因為一個失敗而全部失敗,而是繼續執行后續操作,在返回時按照執行的狀態返回! ----
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看