ElasticSearch基本介紹與文件的基本操作

2021-10-02 19:25:14 字數 3377 閱讀 5938

建立文件時,如果索引index不存在時,es 會自動的建立相應的index 和 type。文件的id 可以外部指定和自動建立。

# 建立文件,並指定id

put /twitter/_doc/1

# 建立文件,不指定id,注意指定id使用put,不指定使用post

post /twitter/_doc

執行結果如圖:

,

"hits" : },}

]}}

# 獲取id為1的文件

get twitter/_doc/1

# 獲取id為1的文件,並指定獲取字段

get twitter/_doc/1?_source=user,message

# 獲取id為1的文件,並指定排除字段

get /twitter/_doc/1?_source_include=*&_source_exclude=message

# 實時獲取id為1的文件

get twitter/_doc/1?refresh=true

# 獲取全部文件

get twitter/_doc/_search

# 刪除id為1的文件

delete twitter/_doc/9w7f9m8bpp_kbjhth0a2

# 刪除索引

delete twitter

# 條件刪除

post twitter/_doc/_delete_by_query

}}# 條件刪除, 衝突時繼續

post twitter/_doc/_delete_by_query?conflicts=proceed

}}

# 建立文件

put test/_doc/1

# 基本更新

post test/_doc/1/_update

}# 指令碼更新數量

post test/_doc/1/_update

}}# 更新tags

post test/_doc/1/_update

}}# 刪除tags

post test/_doc/1/_update

", "lang": "painless",

"params":

}}# 刪除tags

post test/_doc/1/_update

", "lang": "painless",

"params":

}}# 以上測試 tags已經存在值,現在測試一下tags不存在任何值的情況,發現使用指令碼api,會報錯,因為es無法識別tags為集合

# 建立索引

put twitter1

, "tags": }}

}}# 插入資料

put twitter1/_doc/2

# 更新tags

post twitter1/_doc/2/_update

else ",

"lang": "painless",

"params":

}}post twitter1/_doc/2/_update

else ",

"lang": "painless",

"params":

}}注:關於script語法,可檢視:

# 更新 counter > 0 的文件的tags

post twitter1/_doc/_update_by_query?conflicts=proceed

else ",

"lang": "painless",

"params":

},"query":

}}}

# 批量獲取

get twitter1/_doc/_mget

# 批量獲取

get twitter1/_doc/_mget

,

]}

# bulk

post _bulk}}

}}

# reindex twitter 到 new_twitter

post _reindex

, "dest":

}post _reindex

, "dest":

}

version_type:版本型別,有三個選項,internal(內部的),external(外部的),create(建立的)。

# 有條件的reindex

post _reindex}},

"dest":

}# 僅僅reindex一定數量的部分字段

post _reindex

},"dest":

}#遠端reindex

post _reindex

, "index": "source",

"query": }},

"dest":

}

host引數必須包含scheme,host和port(例如 https:// otherhost:9200)。使用者名稱和密碼引數是可選的,當它們存在時,索引將使用基本認證連線到遠端elasticsearch節點。使用基本認證時請務必使用https,密碼將以純文字格式傳送。

必須在elasticsearch.yaml中使用reindex.remote.whitelist屬性將遠端主機明確列入白名單。它可以設定為允許的遠端host和port組合的逗號分隔列表(例如otherhost:9200,another:9200,127.0.10.*:9200,localhost:*)。白名單忽略了scheme ——僅使用主機和埠。

reindex.remote.whitelist: "otherhost:9200, another:9200, 127.0.10.*:9200, localhost:*"
url引數:

使用task api獲取任何正在執行的重建索引請求的狀態:

# 檢視任務

get _tasks?detailed=true&actions=*reindex

# 檢視任務詳情

get /_tasks/r1a2worbtwkz516z6nes5a:36619

# 取消任務

post _tasks/r1a2worbtwkz516z6nes5a:36619/_cancel

具體檢視:

index、update、delete和bulkapi支援設定refresh以控制此請求所做的更改對搜尋可見。這些是允許的值:

Elasticsearch 基本操作

mget elasticsearch中檢索多個文件,相對於乙個乙個的檢索,更快的方式是在乙個請求中使用multi get或者 mget api。具體應用如下 mget api引數是乙個 docs 陣列,陣列的每個節點定義乙個文件的 index type id 元資料。如果你只想檢索乙個或幾 個確定的...

elasticsearch基本操作

get search 建立索引 指定分片和副本 put lib 建立索引 put lib2 檢視索引的配置 get lib settings get lib2 settings get all settings 新增文件put方式指定id put lib user 1 新增文件,不指定id用post...

Elasticsearch 基本操作

乙個批量匯入elasticsearch 的demo 機器少的話,分片數最好是你的data節點的機器數倍數,這樣請求負載能夠均攤到每個機器上,如果機器比較多,最好保證分片數不要太多,比如最好別超過20 30個,然後根據你的資料量評估一下,盡量保證每個分片在15到20g吧 資料 vi request.j...