当前位置:  开发笔记 > 编程语言 > 正文

如何配置索引以使用JAVA API在ElasticSearch中使用BM25?

如何解决《如何配置索引以使用JAVAAPI在ElasticSearch中使用BM25?》经验,为你挑选了1个好方法。

我正在尝试从MySQL数据库迁移到ElasticSearch,因此我可以在每个字段上使用BM25相似性的全文搜索技术.我正在使用JAVA从MySQL获取条目并将它们添加到ElasticSearch索引中.

我正在使用JAVA 索引API构建索引,但我无法找到一种方法来设置我的字段的BM25相似性.

我认为MySQL和dev的表产品表是一个索引,产品是索引类型.

原始表产品包含以下字段:

ID

标题

描述

你可以在我的Github上找到代码,如果你想看看.这是我用Maven集成配置的分叉项目.

欢迎任何建议和任何帮助,谢谢!



1> eliasah..:

我找到了问题的答案.

这是代码:

Settings settings = ImmutableSettings
            .settingsBuilder()
            .put("cluster.name", "es_cluster_name"))
            // Define similarity module settings
            .put("similarity.custom.type", "BM25")
            .put("similarity.custom.k1", 2.0f)
            .put("similarity.custom.b", 1.5f)
            .build();

Client client = new TransportClient(settings);

在实例化客户端之前,您似乎可以在"设置"中定义要使用的相似性模块.

以下是目前支持的相似性模块列表elasticsearch:默认值,BM25,DFR,IB,LMDirichlet和LMJelinekMercer.您可以在下面的设置中指定要使用的那个:

   .put("similarity.custom.type", "..." )

每个相似性都有自己的参数,您也可以配置这些参数以便正确使用它.

注意:代码在elasticsearch1.1.0上测试.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有