如何在 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,感谢您仔细查看我的问题。
我想尝试支持波兰语的 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,感谢您仔细查看我的问题。