使用 elasticsearch 连接自定义插件
wire custom plugin with elasticsearch
我已经为 ES 5.x.x 编写了一个插件,包含所有组件:Plugin、Factory、Provider、Analyzer、Filter(过滤器具有重要的逻辑)。
我用
测试了它
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
好吧,爆炸.. 在我的插件中 class 我已经实现了 getAnalyzers(),但看起来为了能够设置过滤器,还必须实现 getTokenFilters()
我已经为 ES 5.x.x 编写了一个插件,包含所有组件:Plugin、Factory、Provider、Analyzer、Filter(过滤器具有重要的逻辑)。 我用
测试了它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
好吧,爆炸.. 在我的插件中 class 我已经实现了 getAnalyzers(),但看起来为了能够设置过滤器,还必须实现 getTokenFilters()