gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:51 26 4
gpt4 key购买 nike

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

我正在使用 JAVA index API 构建我的索引,但我想不出一种方法来设置我的字段的 BM25 相似度。

我将 MySQL 和 dev 中的表 products 视为索引,products 是索引类型。

原始表 products 包含以下字段:

  • 编号
  • 标题
  • 描述

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

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

最佳答案

我找到了问题的答案。

代码如下:

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", "..." )

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

注意代码在 elasticsearch 1.1.0 上测试。

关于java - 如何使用 JAVA API 配置我的索引以在 ElasticSearch 中使用 BM25?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com