OpenSearchコマンド
ElasticSearchと微妙に差異があるので備忘録に
自分でよく使うもののみ
起動確認
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 -H Content-Type:application/json -XPOST 'localhost:9200/_aliases' -d
'{"actions": [{"add": {"index": "{indexName}", "alias": "{aliasName}"}}]}'
エイリアス確認
curl -XGET 'localhost:9200/_aliases?pretty'
ドキュメント
件数確認
curl -XGET 'localhost:9200/{indexName}/_count?pretty'
フィールド定義追加
curl -H Content-Type:application/json -XPOST 'localhost:9200/{indexName}/_mappings/?pretty' -d '
{
"properties" : {
"field1" : {
"type" : "text"
},
"field2" : {
"type" : "keyword"
}
}
}'
ドキュメント追加
curl -H Content-Type:application/json -XPOST 'localhost:9200/{indexName}/_update/{_id}' --d '
{
"doc": { "name": "Jhon Doe", "age": 20 }
}'
ドキュメント更新
curl -H Content-Type:application/json -XPOST 'localhost:9200/{indexName}/_update/{_id}' --d '
{
"doc": { "name": "Jhone Doe", "age": 21 }
}'
ドキュメント取得
curl -XGET 'localhost:9200/{indexName}/_doc/{_id}?pretty'
ドキュメント検索(条件無)
curl -XGET 'localhost:9200/{indexName}/_search?pretty'
ドキュメント検索(条件有)
curl -H Content-Type:application/json -XGET 'localhost:9200/{indexName}/_search?pretty' -d '
{
"query": {
"match": {
"name": "Jhon"
}
}
}
'
リインデックス
curl -H Content-Type:application/json -XPOST 'localhost:9200/_reindex?pretty' -d '
{
"source": {
"index": "fromIndex"
},
"dest": {
"index": "toIndex"
}
}'
その他
ユーザー名
きめ細かなアクセスコントロールの機能を使っていてユーザー名を指定する必要がある時は以下のようにユーザー名とパスワードを指定する
curl -u {USERNAME}:{PASSWORD} -XGET 'localhost:9200/_cat/indices?v'
書き出したjsonファイルを使う
xxx.json
{
"name": "Jhon Doe",
"age": 20
}
curl -H Content-Type: application/json -XPOST 'localhost:9200/{indexName}/_doc/' -d @xxx.json
参考にした記事