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

How to use custom analyzer in ElasticSearch?

我想尝试支持波兰语的 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后需要做些什么吗? 我找不到任何关于使用该插件的具体说明,所以也许我只是在做一些明显错误的事情?

有关我如何设置环境的更多详细信息: 我通过命令 运行 docker 安装了带有 ES 和 kibana 的图像:

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:/#服务elasticsearch重启

如有任何帮助,我将不胜感激! 克日什托夫

好的,我明白了。看来我的 插件没有正确安装 。即使那个插件安装命令没有 return 任何错误,elasticsearch 重启命令也没有,Elasticsearch 中有 Lucene 版本不匹配(我不记得了,但低于 4.10。 2) 和插件 (4.10.3).

查看 elasticsearch.log 文件就足够了...我的错。

但还有更多:我切换到最受欢迎(按星级)的 elasticsearch docker 图像,即:dockerfile/elasticsearch。它有基于 Lucene 4.10.2 的 ES 版本 1.4.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,感谢您仔细查看我的问题。