91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

?Elasticsearch如何實現文檔操作

發布時間:2021-12-16 10:57:03 來源:億速云 閱讀:138 作者:小新 欄目:大數據

這篇文章給大家分享的是有關Elasticsearch如何實現文檔操作的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Elasticsearch

回顧

前面的四篇文章我們討論了什么是es,是用來干什么的,如何進行安裝,怎么樣建立索引庫,如何給索引庫添加mapping映射。本篇我們開始討論如何添加文檔,如何修改文檔已經如何刪除文檔。

文檔

什么是es文檔,其實mapping就是es的數據字段約束,我們定義好一個索引,并且定義了一個mapping映射,就相當于我們在關系型數據庫中定義好了這個表的表結構。也就是我們這個索引會用那些列。es中的一個文檔,其實就是在mapping約束下的一行數據記錄。索引可以認為是文檔的優化集合,每個文檔都是字段的集合,這些字段是包含數據的鍵值對。默認情況下,Elasticsearch對每個字段中的所有數據建立索引,并且每個索引字段都具有專用的優化數據結構。希望這樣說小伙伴們可以理解。

maping映射結構

上篇文章中我們創建了一個叫做movie的索引,并且創建了該索引的mapping,復習一下查詢索引的命令

curl -X GET "localhost:9200/movie/_mapping?pretty"

可以看到,返回一個json串,可以清晰的看到我們定義的mapping,這里就不貼出來,不知道的小伙伴可以到上一篇文章中查看。

添加

下面,我們根據定義的映射,來添加我們的文檔,特別說明:我們后續針對es的操作,都會用一個工具postman倆操作,目前還不會的小伙伴們可以自行學習一下

我們都知道,添加文檔用PUT命令,所以需要執行如下命令進行文檔的添加,具體請看下圖,postman的操作

http://ip:9200/movie/_doc/1

?Elasticsearch如何實現文檔操作

?

我們將要添加的數據,以json鍵值對的方式書寫完成,放在body輸入框中,點擊raw,選擇JSON的格式

_doc作者目前用的es版本為7.8的版本,es7.0以前是支持多類型的,但是7.0以后,就將多類型移除掉了,默認支持_docl類型。

?

請求成功成功后會返回如下內容:

{
    "_index": "movie",
    "_type": "_doc",
    "_id": "1",
    "_version": 3,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0    },
    "_seq_no": 2,
    "_primary_term": 2}
?

根據上面的內容,我們可以看到的信息有,這個文檔是是創建的"result": "created",屬于movie索引的_doc類型以及他的版本號。

?

id自動分配

上面的例子,我們添加文檔的時候,是指定了一個文檔的id為1,那么我們如果不指定id呢?這個時候es會為我們自動生成一個id,請看下面的操作。

?

可以看到讓系統自動分配id,用PUT增加文檔的時候回報錯,可以看到,提示用post并非PUT。然后我們換成post進行請求,返回結果如下,可以看到系統為我們分配的id是一個字符串。

?
{
    "_index": "movie",
    "_type": "_doc",
    "_id": "9XmceHQByHcRbTF_z1TT",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0    },
    "_seq_no": 4,
    "_primary_term": 3}

修改

es的修改,不是真正的修改,它的機制是將,原有的文檔刪除掉,然后新建一個,并且版本號加1.那么我們將修改的內容如下:

{
    "films" : "八百",
    "name" :"八百",
    "release_area":"中國",
    "release_time" :"八月二十一",
    "theme":"贊美小人物" 
}

再次使用PUT命令進行請求,返回結果如下:

{
    "_index": "movie",
    "_type": "_doc",
    "_id": "1",
    "_version": 4,
    "result": "updated",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0    },
    "_seq_no": 3,
    "_primary_term": 2}
?

可以看到,這個時候"result": "updated",是updated``而不是created的操作,并且版本號進行了累加。

?

刪除

刪除一個文檔就很簡單了,直接指定你要刪除的文檔id就可以了,如下:

?Elasticsearch如何實現文檔操作

查詢

我們將剛剛刪除的那個文檔在添加進去,下面我們看一下如何查詢文檔。

查詢單個文檔

我們查詢id為1的文檔,如下:

批量查詢

批量查詢,我們會用到一個_mget的指令,如下:

http://121.36.55.57:9200/_mget

請求體為

{
    "docs":[
        {
            "_index":"movie",
            "_type":"_doc",
            "_id":"1"            
        },
        {
           "_index":"movie",
            "_type":"_doc",
            "_id":"2"  
        }
    ]
}

查詢結果

{
    "docs": [
        {
            "_index": "movie",
            "_type": "_doc",
            "_id": "1",
            "_version": 1,
            "_seq_no": 6,
            "_primary_term": 3,
            "found": true,
            "_source": {
                "films": "八百",
                "name": "八百",
                "release_area": "中國",
                "release_time": "八月二十一",
                "theme": "贊美小人物"            }
        },
        {
            "_index": "movie",
            "_type": "_doc",
            "_id": "2",
            "_version": 1,
            "_seq_no": 7,
            "_primary_term": 3,
            "found": true,
            "_source": {
                "films": "信條",
                "name": "信條",
                "release_area": "美國,英國",
                "release_time": "九月四日",
                "theme": "時空逆襲"            }
        }
    ]
}

還可以這些查詢,指定索引,指定類型,直接提供id就可以查詢

http://121.36.55.57:9200/movie/_doc/_mget

請求體如下:也是可以查到的。

{
   "ids":["1","2"]
}

感謝各位的閱讀!關于“Elasticsearch如何實現文檔操作”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁阳县| 宕昌县| 西安市| 乐业县| 酉阳| 缙云县| 小金县| 红原县| 柘荣县| 嘉峪关市| 长宁县| 博爱县| 龙井市| 绥芬河市| 昌吉市| 资兴市| 黎城县| 鲁甸县| 罗源县| 龙山县| 察隅县| 姜堰市| 涟水县| 绥宁县| 镇原县| 林周县| 白河县| 石渠县| 渝中区| 柳林县| 唐海县| 神池县| 白沙| 汶川县| 襄城县| 卫辉市| 英德市| 甘孜县| 永丰县| 定远县| 大港区|