elasticsearch 部分查詢語句node
# 獲取集羣的節點列表: curl 'localhost:9200/_cat/nodes?v' # 列出全部索引: curl 'localhost:9200/_cat/indices?v' 建立一個名爲「customer」的索引,而後再查看全部的索引: curl -X PUT 'localhost:9200/customer?pretty' curl 'localhost:9200/_cat/indices?v'
若是須要用戶名和密碼登陸才能夠訪問,經過下面的方式指定用戶名和密碼
# 獲取集羣的節點列表: curl --user username:password 'localhost:9200/_cat/nodes?v'
參考連接: https://blog.csdn.net/pilihaotian/article/details/52452014linux
github地址 :https://github.com/taskrabbit/elasticsearch-dumpgit
或者 : https://www.npmjs.com/package/elasticdumpgithub
wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz tar xf node-v8.11.2-linux-x64.tar.xz mv node-v8.11.2-linux-x64 /usr/local ln -s /usr/local/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm ln -s /usr/local/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node npm init -f npm install elasticdump #由於我只用一次,因此這裏沒有安裝到全局,須要到node_modules目錄下才能找到 elasticdump , 我安裝的位置以下: /usr/local/node-v8.11.2-linux-x64/node_modules/elasticdump/bin/elasticfump
數據遷移: npm
'#拷貝analyzer分詞 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=analyzer '#拷貝映射 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=mapping '#拷貝數據 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=data
# 注意 elasticdump 提供給了--httpAuthFile 參數來作認證 --httpAuthFile When using http auth provide credentials in ini file in form `user=<username> password=<password>` # 只須要寫一個ini文件 ,文件中寫入用戶名和密碼就能夠了
# 這裏其實還有另一個好的方法
# 在--input參數和--output參數的的url中添加帳號密碼
# 例如
elasticdump \ --input=http://prod-username:prod-passowrd@production.es.com:9200/my_index \ --output=http://stage-username:stage-password@staging.es.com:9200/my_index \ --type=data
若是網絡狀況很差,或者沒有網絡還能夠先備份到文件:json
# 備份索引數據到文件裏: elasticdump \ --input=http://production.es.com:9200/my_index \ --output=/data/my_index_mapping.json \ --type=mapping elasticdump \ --input=http://production.es.com:9200/my_index \ --output=/data/my_index.json \ --type=data # 備份到標準輸出,且進行壓縮(這裏有一個須要注意的地方,我查詢索引信息有6.4G,用下面的方式備份後獲得一個789M的壓縮文件,這個壓縮文件解壓後有19G): elasticdump \ --input=http://production.es.com:9200/my_index \ --output=$ \ | gzip > /data/my_index.json.gz # 把一個查詢結果備份到文件中 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=query.json \ --searchBody '{"query":{"term":{"username": "admin"}}}'
elasticdump仍是很是方便的,主要是能夠指定查詢條件,把查詢結果進行備份。若是按照日期進行查詢,那麼就能夠遷移指定之間段內的數據,
恢復數據
# 將備份文件的數據導入ES elasticdump \ --input=./data.json \ --output=http://es.com:9200
其實對ES瞭解還不多,中間可能有問題,還須要學習,就目前的瞭解程度,不保證上面的步驟完整,只是給你們一個大概的思路。網絡