elasticsearch5.0.0中插件的變化,文件系統和路徑的變化

Plugin changesjava

插件命令由bin/plugin修改成bin/elasticsearch-plugin。插件的文檔結構也作了修改。全部的插件文件必須和elasticsearch評級的目錄中。若是你用工具生成,這種結構會自動生成。node

插件隔離app

隔離(isolation)選項已被刪除。每一個插件都有它本身的類加載器。elasticsearch

網站的插件刪除工具

網站插件已被刪除。網站插件應該在Kibana插件中實現。oop

多播的插件刪除測試

已刪除多播。使用單播發現,或雲發現插件。網站

自定義查詢插件的實現插件

自定義查詢插件須要在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)原創,轉載請標明做者和出處。

相關文章
相關標籤/搜索