真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ElasticSearch入門學(xué)習(xí)-基礎(chǔ)示例(1)

基于 ElasticSearch-6.1.2

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的洪澤網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!


關(guān)于文檔元數(shù)據(jù)

參考官方權(quán)威指南 文檔元數(shù)據(jù)

一個文檔有三個必須的元數(shù)據(jù)元素:

  • _index:表示文檔存放在哪個 index 中;

  • _type:文檔表示的對象類型;

  • _id:文檔的唯一標識;

1. 索引新文檔

通過使用 index API,使得文檔可以被 索引 -- 即存儲文檔,以及使得文檔可以被搜索。


1.1 使用自定義的ID

以下為索引一篇blog的例子,其中:index 為 website,類型為 blog,自定義的ID為 123,

PUT /website/blog/123 HTTP/1.1
{    "date": "2014/01/01", 
    "text": "Still trying this out...", 
    "title": "My second blog entry"}

ES 的響應(yīng)體如下:

HTTP/1.1 201 Created
Location: /website/blog/123
content-encoding: gzip
content-length: 143
content-type: application/json; charset=UTF-8

{    "_id": "123", 
    "_index": "website", 
    "_primary_term": 1, 
    "_seq_no": 0, 
    "_shards": {        "failed": 0, 
        "successful": 1, 
        "total": 2
    }, 
    "_type": "blog", 
    "_version": 1, 
    "result": "created"
}

在 ES 中,每個文檔都會有個版本號(響應(yīng)中的 _version 字段),每次修改和刪除,_version 都會自增。

1.2 使用 ES 自動生成的ID

采用 POST 提交索引請求:

POST /website/blog/ HTTP/1.1

{    "date": "2014/01/01", 
    "text": "Still trying this out...", 
    "title": "My second blog entry"
}

如下為 ES 的響應(yīng):

HTTP/1.1 201 Created
Location: /website/blog/UALcG2EBr-dnzPFB0zH1
content-encoding: gzip
content-length: 165
content-type: application/json; charset=UTF-8

{    "_id": "UALcG2EBr-dnzPFB0zH1", 
    "_index": "website", 
    "_primary_term": 1, 
    "_seq_no": 0, 
    "_shards": {        "failed": 0, 
        "successful": 1, 
        "total": 2
    }, 
    "_type": "blog", 
    "_version": 1, 
    "result": "created"}

除了 _id 是 ES 自動生成的之外,其他響應(yīng)字段都和上面的類似。

自動生成的 ID 是 URL-safe、 基于 Base64 編碼且長度為20個字符的 GUID 字符串。 這些 GUID 字符串由可修改的 FlakeID 模式生成,這種模式允許多個節(jié)點并行生成唯一 ID ,且互相之間的沖突概率幾乎為零。


2. 檢索文檔

2.1 檢索指定ID的文檔

查詢 ID 為 123 的 blog 的請求:

GET /website/blog/123?pretty HTTP/1.1

請求后面的 pretty 參數(shù)使得 ES 在輸出時調(diào)用 prety-print 功能,使得 JSON 響應(yīng)體更加可讀。

ES 響應(yīng)如下:

HTTP/1.1 200 OK
content-encoding: gzip
content-length: 173
content-type: application/json; charset=UTF-8

{    "_id": "123", 
    "_index": "website", 
    "_source": {        "date": "2014/01/01", 
        "text": "Still trying this out...", 
        "title": "My second blog entry"
    }, 
    "_type": "blog", 
    "_version": 1, 
    "found": true}

響應(yīng)體中的 {"found": true} 表示文檔已經(jīng)檢索到,如果沒有指定的文檔,則會返回 found = false,如下:

GET /website/blog/124?pretty HTTP/1.1

HTTP/1.1 404 Not Found
content-encoding: gzip
content-length: 87
content-type: application/json; charset=UTF-8

{    "_id": "124", 
    "_index": "website", 
    "_type": "blog", 
    "found": false}

2.2 返回文檔的一部分

如下只返回 blog 的標題字段,而不是默認的返回所有字段:

GET /website/blog/123?pretty&_source=title HTTP/1.1

HTTP/1.1 200 OK
content-encoding: gzip
content-length: 136
content-type: application/json; charset=UTF-8

{    "_id": "123", 
    "_index": "website", 
    "_source": {        "title": "My second blog entry"
    }, 
    "_type": "blog", 
    "_version": 1, 
    "found": true}

2.3 只返回文檔內(nèi)容,不需要返回元信息

GET /website/blog/123/_source?pretty HTTP/1.1

HTTP/1.1 200 OK
content-encoding: gzip
content-length: 113
content-type: application/json; charset=UTF-8

{    "date": "2014/01/01", 
    "text": "Still trying this out...", 
    "title": "My second blog entry"}

2.3 檢查文檔是否存在

使用 HEAD 請求,只返回一個 HTTP 請求報文頭:

HEAD /website/blog/123 HTTP/1.1

如果文檔存在,則返回一個  200 OK 的狀態(tài)碼:

HTTP/1.1 200 OK

content-length: 186

content-type: application/json; charset=UTF-8

如果不存在,則返回一個 404 Not Found 的狀態(tài)碼:

HTTP/1.1 404 Not Found

content-length: 61

content-type: application/json; charset=UTF-8

3,更新文檔

ES 中的文檔是 *不可改變* 的,不能修改的,如果需要更新現(xiàn)有的文檔,需要 重建索引 或者進行替換。

PUT /website/blog/123 HTTP/1.1

Accept: application/json, */*

Accept-Encoding: gzip, deflate

Connection: keep-alive

Content-Length: 117

Content-Type: application/json

Host: localhost:9200

{

    "date": "2014/01/02", 

    "text": "I am starting to get the hang of this...", 

    "title": "My first blog entry"

}

如下為 ES 的響應(yīng)體:

HTTP/1.1 200 OK

content-encoding: gzip

content-length: 143

content-type: application/json; charset=UTF-8

{

    "_id": "123", 

    "_index": "website", 

    "_primary_term": 2, 

    "_seq_no": 1, 

    "_shards": {

        "failed": 0, 

        "successful": 1, 

        "total": 2

    }, 

    "_type": "blog", 

    "_version": 2, 

    "result": "updated"

}

如上可以看到 _version字段自增了。在內(nèi)部,Elasticsearch 已將舊文檔標記為已刪除,并增加一個全新的文檔。 盡管你不能再對舊版本的文檔進行訪問,但它并不會立即消失。當繼續(xù)索引更多的數(shù)據(jù),Elasticsearch 會在后臺清理這些已刪除文檔。

4,刪除文檔

使用 DELETE 方法來刪除文檔。

DELETE /website/blog/123HTTP/1.1

Accept: */*

Accept-Encoding: gzip, deflate

Connection: keep-alive

Content-Length: 0

Host: localhost:9200

ES 返回的響應(yīng)體如下:

HTTP/1.1 200 OK

content-encoding: gzip

content-length: 143

content-type: application/json; charset=UTF-8

{

    "_id": "123", 

    "_index": "website", 

    "_primary_term": 2, 

    "_seq_no": 2, 

    "_shards": {

        "failed": 0, 

        "successful": 1, 

        "total": 2

    }, 

    "_type": "blog", 

    "_version": 3, 

    "result": "deleted"

}


本文名稱:ElasticSearch入門學(xué)習(xí)-基礎(chǔ)示例(1)
當前網(wǎng)址:http://weahome.cn/article/ggoiej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部