天天看点

Elasticsearch常用的接口(一)

作者:贵哥说Java创业

索引类接口

  1. 通过下面的接口创建一个索引名为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命令。

继续阅读