我为ES 5.x.x编写了一个包含所有组件的插件:插件,工厂,提供程序,分析器,过滤器(过滤器具有重要的逻辑)。 我用
测试了它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-plugin install
答案 0 :(得分:0)
好吧,在我的Plugin类中我已经实现了getAnalyzers(),但看起来为了能够设置过滤器,getTokenFilters()也必须实现