elasticsearch5.0.0中插件的变化,文件系统和路径的变化

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Plugin changes

插件命令由bin/plugin修改为bin/elasticsearch-plugin。插件的文档结构也做了修改。所有的插件文件必须和elasticsearch评级的目录中。如果你用工具生成,这种结构会自动生成。

插件隔离

隔离(isolation)选项已被删除。每个插件都有它自己的类加载器。

网站的插件删除

网站插件已被删除。网站插件应该在Kibana插件中实现。

多播的插件删除

已删除多播。使用单播发现,或云发现插件。

自定义查询插件的实现

自定义查询插件需要在QueryParser子类中实现fromXContent方法。插件实现自定义评分功能需要在scorefunctionparser子类中实现fromxcontent方法。

Delete-By-Query插件已移除,现在在ES的核心中用Delete By Query接口来实现。当删除时间比较长的时候,可以通过cancel接口取消。

请求:POST secilog/_delete_by_query

参数:

{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}

 

返回值类似:

{
  "took" : 147,
  "timed_out": false,
  "deleted": 119,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1.0,
  "throttled_until_millis": 0,
  "total": 119,
  "failures" : [ ]
}

取消接口

请求:POST _tasks/task_id:1/_cancel

attachments插件被ingest-attachment插件代替

JAVA系统属性设置,在之前的JAVA系统属性设置可以在插件脚本中-D参数直接使用。现在这种情况将不在允许,现在通过ES_JAVA_OPTS参数进行设置。

通过path.plugins设置自定义插件路径将取消。

自定义脚本插件将通过ScriptPlugin实现,取消了以前的通过onModule实现。

自定义分词插件通过AnalysisPlugin实现,取消了以前的通过onModule实现。

自定义映射插件通过MapperPlugin 实现,取消了以前的通过onModule实现。

自定义行为插件通过ActionPlugin实现,取消了以前的通过onModule实现。

自定义RestHandler`s插件通过ActionPlugin实现,取消了以前的通过onModule实现。

自定义搜索插件通过SearchPlugin实现,取消了以前的通过onModule实现。

SearchParseElement接口将被移除。自定义请求部分只能通过扩展(ext)元素实现,通过SearchPlugin.SearchExtSpec提供在自定义解析器的附加部分插入自定义的内容,在SearchExtSpec中实现XContent语法。语法解析现在在协调节点。语法解析后的结果和搜索请求的其他部分会通过传输层到数据节点,然后存储在搜索上下文中用于以后检索。

测试自定义插件

ESIntegTestCase# pluginlist已被删除,用Arrays.asList来代替,现在它不需要所有的插件都要用java 1.8来实现。

在2.X版本索引中的元字段_size在聚合,脚本和排序中不能使用,如果需要使用这些特性,请用5.X版本重建索引。

文件系统相关的变化

在2.X版本中,索引文件的子集是通过mmap打开。在5.X中,在64为系统中所有的索引文件都是通过mmap打开,这可能会增加虚拟内存使用量,但影响不大,因为这只增加了地址空间的消耗的使用量,其他实际内存的使用情况和2.X类似。

磁盘上的数据的路径

在之前的版本中,数据路径通过path.data进行配置,实际的路径包括集群名称。所以数据路径的全路径为$DATA_DIR/$CLUSTER_NAME/nodes/$nodeOrdinal。在5.0中路径中的集群名称将不建议使用,现在存储的全路径为$DATA_DIR/nodes/$nodeOrdinal。但为了兼容性,在启动后系统会检查集群文件夹和文件夹中的数据是否存在,如果存在系统将会尽可能读取数据。这个特想将在6.0中取消。

如果多个集群实例公用一个数据路径,需要在数据路径下添加集群名称,这样就可以保证不同的集群存储到不同的路径下。

在5.0之前,当node.data: false和node.master: false设置的时候,系统是不写入任何文件到到磁盘。在5.X中,系统需要写入实例化节点ids标志,需要节点来存储这些信息。因此,所有的节点类型都将写入一个小的状态文件到他们的数据文件夹。

本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。

转载于:https://my.oschina.net/secisland/blog/794524

你可能感兴趣的:(elasticsearch5.0.0中插件的变化,文件系统和路径的变化)