2017-09-04 31 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()也必须实现,以及