一、Elasticsearch 索引(新建)一個文檔的命令:
curl XPUT ' http://localhost:9200/test_es_order_index/test_es_order_type/1 ' -d '
{
"id": 5,
"name": "test555",
"skuName": "55",
"age":23
}
'
這里test_es_order_index 是_index名稱,test_es_order_type是_type類型名稱,1是_id號。
需要注意的是,如果不指定ID,那么需要使用POST命令,而不是PUT。
二、更新文檔
除了索引和替換文檔,ES還支持更新文檔。更新文檔其實是先刪除舊的文檔,再索引新的文檔。
如果想要更新文檔內容,可以按照下面的方式進行:
curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/1/_update?pretty' -d ' { "doc": { "name": "Jane Doe" } }'
由於是先刪除再索引,因此可以額外增加新的字段:
curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/1/_update?pretty' -d ' { "doc": { "name": "Jane Doe", "age": 20 } }'
當然也支持使用腳本進行更新:
curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/1/_update?pretty' -d ' { "script" : "ctx._source.age += 5" }'
其中ctx._source代表了當前的文檔,上面的意思 是 在當前文檔的基礎上age加5.
三、刪除文檔
刪除文檔就很簡單了,只需要指定文檔的索引、類型、ID就行了:
curl -XDELETE 'localhost:9200/test_es_order_index/test_es_order_type/1?pretty'
四、批量操作
除了索引、替換、更新和刪除,ES為了減少來回的響應信息,可以一次性執行多個命令,最后統一返回執行結果。
例如:
curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/_bulk?pretty' -d '
{"index":{"_id":"1"}} {"name": "John Doe" } {"index":{"_id":"2"}} {"name": "Jane Doe" } '
上面的命令可以同時插入兩條數據。
_bulk命令不僅僅支持單個命令執行多條,還只是多種不同的命令執行多條。
curl -XPOST 'localhost:9200/test_es_order_index/test_es_order_type/_bulk?pretty' -d '
{"update":{"_id":"1"}} {"doc": { "name": "John Doe becomes Jane Doe" } } {"delete":{"_id":"2"}} '
上面的命令中,先更新id為1的文檔,再刪除id為2的文檔。