使用elasticsearch连接自定义插件

使用elasticsearch连接自定义插件,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我已经为ES5.x.x编写了一个插件,包含所有组件:插件、工厂、提供者、分析器、过滤器(过滤器具有重要的逻辑)。 我试了一下 GET index/_analyze?analyzer=my_plugin_name 而且效果很好。 现在我想通过 PUT index/_settings -d @settings.json 但是接收和错误 ES查找我的筛选器的正确方法是什么?在settings.json中,我设置了 "type" : "com.a.b.c.plugin.MyPluginFactory

我已经为ES5.x.x编写了一个插件,包含所有组件:插件、工厂、提供者、分析器、过滤器(过滤器具有重要的逻辑)。 我试了一下

GET index/_analyze?analyzer=my_plugin_name
而且效果很好。 现在我想通过

PUT index/_settings -d @settings.json
但是接收和错误

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插件安装


好吧,爆炸。。在我的插件类中,我实现了getAnalyzers(),但看起来为了能够设置过滤器,getTokenFilters()也必须实现。。在我的插件类中,我实现了getAnalyzers(),但看起来为了能够设置过滤器,还必须实现getTokenFilters()

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