我需要覆盖由Elasticsearch用于索引和搜索的Lucene Default Similarity Class。在搜索网上,我发现了一些类似的实现,它们正在做类似的事情。我的困难是我不知道如何在我的代码中实际实现它。我找到了一些资源:
https://github.com/tlrx/elasticsearch-custom-similarity-provider
curl -XPOST 'http://host:port/tweeter/' -d '
{
"settings": {
"similarity": {
"index": {
"type": "org.elasticsearch.index.similarity.CustomSimilarityProvider"
},
"search": {
"type": "org.elasticsearch.index.similarity.CustomSimilarityProvider"
}
}
}
}'
我无法理解如何在索引编制过程中直接使用此行,以便我的默认相似性更改为此自定义相似度。
org.elasticsearch.index.similarity.CustomSimilarityProvider
任何人都可以告诉我怎么做到这一点?我尝试在我的机器上运行相同的东西,但它不适合我。我是否需要修改此行或路径?
提前致谢。
答案 0 :(得分:4)
您发布的https://github.com/tlrx/elasticsearch-custom-similarity-provider的链接适用于旧版本的elasticsearch。
基于elasticsearch味道插件https://github.com/codelibs/elasticsearch-taste,我为版本2.1.1制作了一个简单的自定义相似性插件,并详细解释了所有步骤 https://github.com/stefansavev/elasticsearch-custom-similarity-example。我只对三个java文件和一个配置文件保持简单。我希望你觉得它很有用。
答案 1 :(得分:1)
您发布的json是使用create index api创建索引的json。在同一请求中,您可以为该索引提供设置,映射等。在这些设置中,您可以注册自定义相似性。
创建索引后,您需要使用index api实际将文档编入索引。
此外,由于0.90,您还可以通过映射配置自定义相似度per field。