Edited at

【Elasticsearch】よく使うコマンド一覧


Elasticsearchコマンド一覧

よく使うコマンドをメモしておく。


目次


  1. Elasticsearch関連

  2. インデックス関連

  3. エイリアス関連

  4. ドキュメントタイプ関連

  5. ReIndexAPI


Elasticsearch関連


起動/再起動

sudo /etc/init.d/elasticsearch start

sudo /etc/init.d/elasticsearch restart


状態確認

curl -XGET 'localhost:9200/'


インデックス関連


一覧

curl -XGET 'localhost:9200/_cat/indices?v'


設定確認

curl -XGET 'localhost:9200/{indexName}/_settings?pretty'


マッピング確認

curl -XGET 'localhost:9200/{indexName}/_mapping?pretty'


削除

curl -XDELETE 'localhost:9200/{indexName}?pretty'


エイリアス関連


エイリアス確認

curl -XGET 'localhost:9200/_aliases?pretty'


ドキュメントタイプ関連


件数確認

curl -sS -XGET 'localhost:9200/{indexName}/{typeName}/_count?pretty'


フィールド定義追加

curl -XPUT 'localhost:9200/{indexName}/_mappings/{typeName}?pretty' -d '

{
"properties" : {
"field1" : {
"type" : "long"
},
"field2" : {
"type" : "date"
}
}
}'


データ一括登録(ID指定なし)

curl -XPOST 'localhost:9200/{indexName}/{typeName}/_bulk?pretty' --data-binary @xxx.json


xxx.json

{ "index" : {} }

{"name":"おにぎり","category":"食べ物"}
{ "index" : {} }
{"name":"車","category":"乗り物"}


データ削除(全件)

curl -XPOST 'localhost:9200/{indexName}/{typeName}/_delete_by_query' --d '

{
"query":{
"match_all":{
}
}
}'


データ検索(無条件)

curl -sS -XGET 'localhost:9200/{indexName}/{typeName}/_search?pretty'


データ検索(From-To指定)

curl -sS -XGET 'localhost:9200/{indexName}/{typeName}/_search?pretty' -d '

{
"query":{
"match_all":{
}
},
"from":0,
"size":400
}'


データ更新(ID指定)

curl -XPOST 'localhost:9200/{indexName}/{typeName}/{id}/_update' -d '

{
"doc":{
"field1": "hogehoge"
}
}'


データ一括更新

curl -XPOST 'localhost:9200/{indexName}/{typeName}/_update_by_query?conflicts=proceed&pretty' -d '

{
"query":{
"match_all": { }
},
"script":{
"inline": "ctx._source.field1 = 'hogehoge'"
}
}'


ReIndexAPI


再インデックス

curl -XPOST 'localhost:9200/_reindex?pretty' -d '

{
"source": {
"index": "fromIndex"
},
"dest": {
"index": "toIndex"
}
}'


再インデックス(リモート)

※reindex.remote.whitelistへ登録の必要あり。(elasticsearch.yml)

curl -XPOST 'localhost:9200/_reindex?pretty' -d '

{
"source": {
"remote": {
"host": "http://otherhost:9200",
"username": "user",
"password": "pass"
},
"index": "fromIndex"
}
},
"dest": {
"index": "toIndex"
}
}