2017-09-04 27 views
1

我已經爲ES 5.x.x編寫了一個插件,其中包含所有組件:插件,工廠,提供程序,分析器,過濾器(過濾器具有重要邏輯)。 我測試了它與使用elasticsearch的自定義插件

GET index/_analyze?analyzer=my_plugin_name 

它工作正常。 現在我想將它與ES通過

PUT index/_settings -d @settings.json 

但接收和錯誤

"caused_by" : { 
    "type" : "illegal_argument_exception", 
    "reason" : "Unknown filter type [MyPluginFactory class name: com.a.b.c.plugin.MyPluginFactory] for [my_filter] 

什麼是正確的方式爲ES找到我的過濾器集成?在settings.json我已經設置

"type" : "com.a.b.c.plugin.MyPluginFactory" 

這是它應該如何工作?這裏是完整的settings.json:

{ "settings": { 
    "analysis": { 
     "filter": { 
     "my_filter" : { 
      "type" : "com.a.b.c.plugin.MyPluginFactory" 
     } 
     }, 
     "analyzer": { 
     "my_analyser": { 
      "tokenizer": "standard", 
      "filter": [ 
      "my_filter" 
      ]}}}}} 

插件通過

elasticsearch,插件安裝安裝

回答

0

好,爆炸..在我的插件類我已經實現getAnalyzers() ,但它看起來像是爲了能夠建立一個過濾器,getTokenFilters()也必須實現,以及