Elasticsearch迁移到OpenSearch:业务侧java client代码差异分析以及修改建议 本文为您提供Elasticsearch迁移到OpenSearch的场景下,Java Client 代码差异以及业务侧代码改动的建议。 随着Elasticsearch闭源,OpenSearch逐渐成为了搜索引擎的开源解决方案之一。但很多用户之前的客户端代码是基于Elasticsearch的,如果把搜索引擎换成OpenSearch,就需要修改他们的客户端代码。大部分客户使用的Java客户端基本都是Java High Level REST Client。需要考虑OpenSearch与Java High Level REST Client的兼容性。 理论上,OpenSearch是兼容Elasticsearch 7.10.2版本的Java High Level Rest Client的代码的,但在实际操作中,还是需要做一点代码的改动,毕竟组件名字、版本都不一致。 官方文档:Migrating from the Elasticsearch OSS client to the OpenSearch highlevel REST client is as simple as changing your Maven dependency to one that references OpenSearch’s dependency.Afterward, change all references of org.elasticsearch to org.opensearch, and you’re ready to start submitting requests to your OpenSearch cluster。 根据以上及实际操作,代码更改主要涉及三块: 1. pom.xml文件的引用; 2. 代码中的import部分,从org.elasticsearch替换为org.opensearch; 3. 特殊情况:极少部分代码的包,位置发生了调整。 pom.xml 譬如: plaintext org.elasticsearch.client elasticsearchresthighlevelclient 7.10.2 调整为: plaintext org.opensearch.client opensearchresthighlevelclient 2.19.1 import部分 譬如: java import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.client.RestHighLevelClient; 调整为: java import org.opensearch.client.RestClient; import org.opensearch.client.RestClientBuilder; import org.opensearch.client.RestHighLevelClient;