Solr(全称为Apache Solr)是一个基于Apache Lucene的开源搜索平台,提供了全文搜索、动态聚合、数据库集成和富文本处理等功能。而MySQL则是一种广泛使用的关系型数据库管理系统。将MySQL数据导入Solr以进行高效搜索是许多应用场景中的常见需求。
以下是一个简单的示例代码,展示如何使用SolrJ库将MySQL数据导入Solr:
// 导入必要的库
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SolrMySQLImporter {
public static void main(String[] args) {
// MySQL连接信息
String mysqlUrl = "jdbc:mysql://localhost:3306/mydatabase";
String mysqlUser = "username";
String mysqlPassword = "password";
// Solr连接信息
String solrUrl = "http://localhost:8983/solr/mycore";
try (Connection conn = DriverManager.getConnection(mysqlUrl, mysqlUser, mysqlPassword);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
SolrClient solrClient = new HttpSolrClient.Builder(solrUrl).build()) {
while (rs.next()) {
SolrInputDocument document = new SolrInputDocument();
document.addField("id", rs.getInt("id"));
document.addField("name", rs.getString("name"));
// 添加其他字段...
solrClient.add(document);
}
solrClient.commit();
} catch (SQLException | IOException | SolrServerException e) {
e.printStackTrace();
}
}
}
请注意,以上代码仅作为示例,实际应用中可能需要根据具体需求进行调整和优化。同时,建议参考官方文档以获取更详细的信息和最佳实践。
领取专属 10元无门槛券
手把手带您无忧上云