索引类接口
- 通过下面的接口创建一个索引名为indexname且包含3个分片、1个副本的索引。
curl -XPUT 'localhost:9200/indexname?pretty' -H 'Content-Type: application/json' -d '
{
"setting":{
"number_of_shards": 3,
"number_of_replicas": 1
}
}'
2. 通过下面的接口删除索引。
curl -XDELETE 'localhost:9200/indexname'
通过该接口就可以删除索引名为indexname的索引。
通过下面接口可以删除多个索引
curl -XDELETE 'localhost:9200/indexname1,indexname2'
curl -XDELETE 'localhost:9200/indexname*'
通过下面的接口可以删除集群下的全部索引。
curl -XDELETE 'localhost:9200/_all'
curl -XDELETE 'localhost:9200/*'
删除全部索引的操作是很危险的,我们可以通过在配置文件中添加下面的配置信息,来关闭使用_all和使用通配符删除索引的接口,使删除索引智能通过索引的全称进行。
action.destructive_requires_name: true
3. 下面接口获取索引的信息,其中,pretty参数用于格式化输出结果,以便更容易阅读
curl -XGET 'localhost:9200/indexname?pretty'
4. 通过下面的接口关闭、打开索引
curl -XPOST 'localhost:9200/indexname/_close'
curl -XPOST 'localhost:9200/indexname/_open'
5. 通过下面接口获取一个索引中具体type的mapping映射。
curl -XGET 'localhost:9200/indexname/typename/_mapping?pretty'
当一个索引中有多个type时,获得mapping时要加上typename。
6. 通过下面的接口获取索引中一个字段的信息。
curl -XGET 'localhost:9200/indexname/indexname/_mapping/field/fieldname'
7. 通过下面的接口为索引添加别名(_alias)
curl -XPUT 'localhost:9200/indexname/_alias/aliasname?pretty'
上面接口为索引indexname添加了别名aliasname,添加成功后可以通过别名或索引名访问该索引。
8. 通过下面的接口对索引别名进行批量操作(_aliases)
curl -XPOST 'localhost:9200/_aliases?pretty' -H 'Content-Type:application/json' -d '
{
"actions": [
{ "remove": { "index": "indexname", "alias": "aliasname"} },
{ "add": { "index": "indexname", "alias": "newalias"} }
]
}'
通过_aliases接口对象对索引的别名进行添加和移除,remove表示移除,add表示添加。可以同时对多个索引进行操作。
9. 通过下面的接口获取索引的settings
curl -XGET 'localhost:9200/indexname/_settings?pretty'
setttings是索引级别的,不需要添加typename
10. 通过下面接口进行分析(分析某个字段是如何建立索引的)。
curl -XGET 'localhost:9200/indexname/_analyze?pretty' -H 'Content-Type: application/json' -d '
{
"field": "fieldname",
"text": "使用fieldname分词的数据"
}'
该接口返回的是对字符串“使用fieldname分词的数据”使用fieldname的分词方式。
11. 通过下面的接口清除索引上的缓存
curl -XPOST 'localhost:9200/indexname/_cache/clear?pretty'
12. 通过下面的接口刷新(flush)索引。
curl XPOST 'localhost:9200/indexname/_flush?pretty'
13. 通过下面的接口刷新(refresh)索引。
curl -XPOST 'localhost:9200/indexname/_refresh?pretty'
14. 通过下面的接口对索引进行优化
curl -XPOST 'localhost:9200/indexname/_forcemerge?pretty'
在elasticsearch 5.x之后的版本中使用_forcemerge替换了_optimize命令。