以下是我个人在Elasticsearch中经常使用的curl命令的总结
首先
最近我在使用Elasticsearch。基本上我使用curl命令。但是,由于Elasticsearch的版本不同,文档变得比较难找,而且使用curl和JSON也很难记住。因此,我自己总结了一下。
指数
创建
・文件
以下是一个例子
curl -XPUT localhost:9200/hoge
确认
●猫
・文件
示中何为“全息技术”?
・请用中文解释“人工智能”的意思。
curl localhost:9200/_cat/indices/hoge
●设置
・文件
子的梦想是在她的职业生涯中取得成功。
curl localhost:9200/hoge/_settings
更新
● 设置
・文件
例如
curl -XPUT localhost:9200/hoge/_settings -H 'Content-Type: application/json' -d '{
"index": {
"number_of_replicas" : 0
}
}'
●更改索引名称(重新索引)
将会创建一个新的别名索引。
文档
Note: The above translation is in simplified Chinese.
例子
curl -XPOST localhost:9200/_reindex -H 'Content-Type: application/json' -d '{
"source": {
"index": "hoge"
},
"dest": {
"index": "new_hoge"
}
}'
删除
・文件
子给了我一个苹果。
curl -XDELETE localhost:9200/hoge
又名
创建和更新
● 创建或更新 huò
・文档
一个好的例子可以说明这个问题。
curl -XPUT localhost:9200/hoge/_alias/hoge-alias
● 行动
・文件
例子
curl -XPOST localhost:9200/_aliases -H 'Content-Type: application/json' -d '{
"actions": [{
"add": {
"index": "hoge",
"alias": "hoge-alias",
"is_write_index": true
}
}]
}'
确认
●猫
・文件
例句 : “He is a talented musician who plays multiple instruments.”
=> “他是一位多才多艺的音乐家,擅长演奏多种乐器。”
curl localhost:9200/_cat/aliases/hoge-alias
获取
・文件
如:
curl localhost:9200/_aliases
删除
・文件
以下是本地化汉语的释义,只有一个选项:
・例
curl -XDELETE localhost:9200/hoge/_alias/hoge-alias
ILM政策
启用/禁用/状态
・文件
以下是一个例子。
・例:可以看到,有些人选择步行上班,而另一些人则选择骑自行车或者乘坐公共交通工具。不同的人有不同的选择。
curl -XPOST localhost:9200/_ilm/start #有効化
curl -XPOST localhost:9200/_ilm/stop #無効化
curl localhost:9200/_ilm/status #ステータス
创建和更新
・文档
curl -XPUT localhost:9200/_ilm/policy/hoge-policy -H 'Content-Type: application/json' -d '{
"policy": {
"phases": {
"delete" : {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}'
确认
· 文件
例: 请你把这个问题解释一下。(Please explain this problem to me.)
curl localhost:9200/_ilm/policy/hoge-policy
删除
・文件
以下是一个中国人的本土翻译:
・例
curl -XDELETE localhost:9200/_ilm/policy/hoge-policy
模板
制作与更新
・文件
请参考以下链接获取关于索引模板的信息:
https://www.elastic.co/guide/cn/elasticsearch/reference/7.8/indices-put-template.html
针对旧版本(Elasticsearch7.8之前)的相关指南,请参考:
https://www.elastic.co/guide/cn/elasticsearch/reference/current/indices-templates-v1.html
例如
curl -XPUT localhost:9200/_index_template/hoge-template -H 'Content-Type: application/json' -d '{
"index_patterns": ["hoge"],
"template":{
"settings": {
"index.lifecycle.name": "hoge-policy"
}
}
}'
传统版本(Elasticsearch7.8之前)
curl -XPUT localhost:9200/_template/hoge-template -H 'Content-Type: application/json' -d '{
"index_patterns": ["hoge"],
"settings": {
"index.lifecycle.name": "hoge-policy"
}
}'
确认
文件
https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-templates.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-template.html
传统版本(Elasticsearch7.8之前)
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-template-v1.html
可以我举个例子来说明
猫
curl localhost:9200/_cat/templates/hoge-template
获取
curl localhost:9200/_index_template/hoge-template
传承版本(即Elasticsearch7.8之前版本)
curl localhost:9200/_template/hoge-template
删除
– 文件
以下是中文的简述,只需要一种选项:
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-template.html
传统版本(早于Elasticsearch7.8)
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-template-v1.html
例子
curl -XDELETE localhost:9200/_index_template/hoge-template
传承版本(Elasticsearch7.8之前的版本)
curl -XDELETE localhost:9200/_template/hoge-template
快照
创建和更新
●仓库注册
・文件
例子:饭店里的服务员很善良和乐于助人,总是微笑着接待客人。
curl -XPUT localhost:9200/_snapshot/hoge-repo -H 'Content-Type: application/json' -d '{
"type": "fs",
"settings": {
"location": "/es-backup"
}
}'
●获取快照
・文件
例如
curl -XPUT localhost:9200/_snapshot/hoge-repo/snapshot_$(date "+%Y%m%d")?wait_for_completion=true -H 'Content-Type: application/json' -d '{
"indices": "hoge"
}'
●恢復老態
・文件
如:
curl -XPOST localhost:9200/_snapshot/hoge-repo/snapshot_20221126/_restore?wait_for_completion=true -H 'Content-Type: application/json'
确认
● 资源库
・文件
以下是有关 Elasticsearch 存储库以及获取快照存储库 API 的官方参考文档链接:
– Elasticsearch 存储库文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-repositories.html
– 获取快照存储库 API 文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/get-snapshot-repo-api.html
以下是一个例子:
猫
curl localhost:9200/_cat/repositories #repository
curl localhost:9200/_cat/snapshots/hoge-repo #snapshot
获取
curl localhost:9200/_snapshot/hoge-repo #repository
curl localhost:9200/_snapshot/hoge-repo/snapshot_20221126 #snapshot
删除
・文件
删除快照存储库 API:https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-snapshot-repo-api.html
删除快照 API:https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-snapshot-api.html
例:去年夏天,我和我的家人一起去了海边度假。我们在沙滩上玩沙子,游泳和晒太阳。晚上,我们在海滨小屋里享用美味的海鲜大餐。整个假期非常愉快,我感到非常幸福。
curl -XDELETE localhost:9200/_snapshot/hoge-repo #repository
curl -XDELETE localhost:9200/_snapshot/hoge-repo/snapshot_20221126 #snapshot
健康
猫
curl localhost:9200/_cat/health
获得
curl localhost:9200/_cluster/health
※关于未分配的分片的原因
当发生索引问题时,您可以根据以下页面的步骤来查找原因。
(闲谈)关于这篇文章中Docker环境的构建方法
为了确认命令的执行结果,我搭建了Docker环境。截至2022/11/26,Docker Compose已经变成了插件,并且安装方法也发生了变化,因此我将进行备忘录记录。
服务器将使用EC2(Amazon Linux2)。
使用以下命令安装Docker和Docker Compose插件。
echo 'install docker'
DOCKER=docker-20.10.17-1.amzn2.0.1
sudo yum install -y ${DOCKER}
sudo systemctl start docker
sudo usermod -aG docker ec2-user
echo 'install docker compose plugin'
DOCKER_COMPOSE_VERSION="v2.13.0"
curl -o docker-compose -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64
chmod +x docker-compose
sudo mv docker-compose /usr/libexec/docker/cli-plugins/
docker compose version
echo 'alias dk="docker compose"' >> ~/.bash_profile
由于使用Docker Compose,我在以下的yaml文件中定义了容器。
services:
es:
image: docker.elastic.co/elasticsearch/elasticsearch:8.5.1
ports:
- "29201:9200"
- "29301:9300"
environment:
- "discovery.type=single-node"
- "xpack.security.enabled=false" #Elasticsearch v8からデフォルトでtrueになりました。
- "path.repo=/es-backup"
volumes:
- es-backup:/es-backup
volumes:
es-backup:
driver_opts:
type: none
o: bind
device: /es-backup
使用以下命令启动容器。
alias dk="docker compose" #コマンドが長いのでaliasで省略します。
dk up -d #Elasticsearchコンテナの起動
dk exec es bash #Elasticsearchコンテナにログイン
※仅提供一种选项:
请参考以下链接获取有关Elasticsearch的更多信息:https://hub.docker.com/_/elasticsearch
最后
这次我整理了我常用的命令。当命令太长时,手指会疼,而且会花费时间来回想。我想从现在开始思考如何更轻松地进行工作。