如何在ElasticSearch中使用自定义分析器?

时间:2015-02-12 20:58:08

标签: elasticsearch elasticsearch-plugin

我想尝试使用波兰语支持的Elasticsearch,但我遇到了一些问题。 我安装了Stempel Analysis Plugin,我正在尝试创建一个使用波兰语分析器的索引:

curl -XPUT localhost:9200/polisz -d '{ 
 "mappings" : {
  "_default_" : {
   "properties" : {
    "text_entry" : { "type": "string", "analyzer": "polish" }
   }
  }
 }
}
'

但是我收到一个关于无法识别分析器的错误:

{
   "status" : 400,
   "error" : "MapperParsingException[mapping [_default_]]; nested: MapperParsingException[Analyzer [polish] not found for field [text_entry]]; "
}

安装插件并重新启动ES后,我应该做些什么吗? 我找不到关于使用插件的任何具体说明,所以也许我只是做了一些明显错误的事情?

有关如何设置环境的更多详细信息: 我通过命令安装并使用ES和kibana运行docker image:

docker pull minimum2scp/es-kibana
docker run -d -p 8080:80 -p 9200:9200 --name es minimum2scp/es-kibana

我通过命令安装了Stempel插件:

host$ docker exec -it es bash
root@docker-es:/# /usr/share/elasticsearch/bin/plugin install elasticsearch/elasticsearch-analysis-stempel/2.4.2

然后我通过以下方式重新启动elasticsearch:     root @ docker-es:/#service elasticsearch restart

我将不胜感激任何帮助! 的Krzysztof

1 个答案:

答案 0 :(得分:4)

好的,我明白了。我的插件似乎无法正确安装。即使那个插件安装命令也没有返回任何错误,弹性搜索重启命令,Elasticsearch中有 Lucene版本不匹配(我不记得,但低于4.10.2)和插件(4.10) 0.3)。

只需查看elasticsearch.log文件就可以找到它...我的不好。

但还有更多内容:我切换到最受欢迎(由星星)的elasticsearch docker镜像,即:dockerfile / elasticsearch。它的ES版本1.4.2基于Lucene 4.10.2,仍然与插件Lucene 4.10.3不匹配。即使插件的作者声明它插入2.4.2(当前稳定)支持1.4 ES版本,这也会导致错误。 引用错误以便将来网络搜索问题:

[2015-02-13 10:57:11,850][INFO ][node                     ] [Necromantra] version[1.4.2], pid[1], build[927caff/2014-12-16T14:11:12Z]
[2015-02-13 10:57:11,851][INFO ][node                     ] [Necromantra] initializing ...                                                       
[2015-02-13 10:57:11,884][ERROR][plugins                  ] [Necromantra] cannot start plugin due to incorrect Lucene version: plugin [4.10.3], node [4.10.2].
[2015-02-13 10:57:11,884][WARN ][plugins                  ] [Necromantra] failed to load plugin from [jar:file:/data/plugins/analysis-stempel/elasticsearch-analysi
s-stempel-2.4.2.jar!/es-plugin.properties]

现在我选择了一个将插件降级到2.4.1的路径,这与我的ES 1.4.2一致。虽然从长远来看,我会寻找具有1.4.3 ES的docker图像,希望这也能升级Lucene版本。

Dadoonet,感谢您仔细查看我的问题。

相关问题