以下是一个简单的 Java 代码示例,用于将数据从数据库读取并存储到 Elasticsearch 中:
import java.sql.*;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
public class DatabaseToElasticsearch {
public static void main(String[] args) {
String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";
String jdbcUsername = "myusername";
String jdbcPassword = "mypassword";
Settings settings = Settings.builder()
.put("cluster.name", "myclustername").build();
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
try (Connection connection = DriverManager.getConnection(jdbcUrl, jdbcUsername, jdbcPassword)) {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable");
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String description = resultSet.getString("description");
IndexResponse response = client.prepareIndex("myindex", "mytype")
.setSource("id", id,
"name", name,
"description", description)
.get();
System.out.println(response.getId());
}
} catch (SQLException e) {
e.printStackTrace();
}
client.close();
}
}
在此示例中,我们使用 JDBC 驱动程序连接到 MySQL 数据库,并执行查询以获取表中的数据。然后,我们使用 Elasticsearch 的 Java 客户端将每个文档(行)索引到 Elasticsearch 中。
请注意,此代码仅用于演示目的。在实际应用中,您需要处理错误和异常情况,并使用适当的调整性能的方式来优化索引速度和资源消耗。




