大数据搜索与挖掘及可视化管理方案 :Elastic Stack 5:Elasticsearch、Logstash、Kibana、X-Pack、Beats (第3版)
上QQ阅读APP看书,第一时间看更新

2.5 管理索引文件

2.5.1 打开、关闭、检测、删除索引文件

一个关闭的索引将禁止写入(或读取)其中的数据,而一个打开的索引文件可以允许用户对其中的数据文件进行相应操作。通过使用/{index名称}/_open和/{index名称}/_close语句,可以打开或关闭指定的索引文件,具体方法见代码段2.9。

    //代码段2.9:打开及关闭索引文件 my_index的方法  
    curl-XPOST'localhost:9200/my_index/_open'
    curl-XPOST'localhost:9200/my_index/_close'

通过HEAD方法,可以检测一个索引文件是否存在。代码段2.10会检测索引文件weibo是否存在(通过返回的HTTP状态码进行检查)。如果返回的状态码是200,则表示存在相应的索引文件;如果返回的状态码是404,则表示文件不存在。

    //代码段2.10:检测索引文件 weibo的状态  
    curl-XHEAD'http://localhost:9200/weibo'- v

类似地,通过删除索引的方式,可以删除一个或者多个索引,如下代码段2.11删除名为weibo1的索引文件。

    //代码段2.11:删除索引 weibo1
    curl-XDELETE'http://localhost:9200/weibo1/'

还可使用通配符来批量删除名称相似的索引文件。如下代码段2.12会删除以“weibo”字符开头的一组索引文件。同样,也可使用“_all”参数来删除全部索引文件。

    //代码段2.12:使用通配符批量删除索引文件
    curl-XDELETE'http://localhost:9200/weibo*/'

2.5.2 清空索引缓存

通过下面的方法,可以清空指定索引中的缓存,参见代码段2.13。

    //代码段2.13:清空索引 weibo中的缓存
    curl-XPOST'http://localhost:9200/weibo/_cache/clear'

如果指定了多个索引文件名称,也可以一次清空多个索引缓存,如下的方法(参见代码段2.14)可以清空两个索引文件weibo1、weibo2中的缓存。

    //代码段2.14:清空多个索引缓存
    curl-XPOST'http://localhost:9200/weibo1, weibo2/_cache/clear'

2.5.3 刷新索引数据

通过如下的方法(参见代码段2.15),可以刷新一个或多个索引文件的状态以便反映最新变化。

    //代码段2.15:刷新索引数据
    curl-XPOST'http://localhost:9200/weibo/_refresh'

这里也可以通过指定多个索引名称,完成一次刷新多个索引文件(分别指定索引文件名)或全部索引(无须指出索引文件名)的任务,方法如代码段2.16所示。

    //代码段2.16:一次刷新多个索引文件或全部索引文件
    curl-XPOST'http://localhost:9200/weibo1, weibo2/_refresh'
    curl-XPOST'http://localhost:9200/_refresh'

2.5.4 优化索引数据

相对于Lucene的索引,Elasticsearch索引过程多了分布式数据的扩展,它主要是用translog进行各节点间的数据平衡。通过如下的代码段2.17,可以优化一个或多个索引:

    //代码段2.17:优化索引数据
    curl-XPOST'http://localhost:9200/weibo/_optimize'

类似地,也可以通过指定多个index名称,完成一次优化多个索引文件或全部索引的任务,方法同代码段2.16,不再赘述。

2.5.5 Flush操作

Flush操作可将暂存于内存中的临时数据送至指定索引文件并清空内部操作日志等,如代码段2.18所示。

    //代码段2.18: Flush索引数据
    curl-XPOST'http://localhost:9200/weibo/_flush'

类似地,也可以通过指定多个索引文件名称的方法,完成一次更新多个索引或全部索引的任务,方法同代码段2.16,不再赘述。