Lindorm搜索引擎支持SQL JDBC访问,本文介绍如何使用开源的Solr JDBC访问Lindorm搜索引擎。
添加Maven依赖
在您的Java应用pom.xml
中添加如下依赖:
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.7.3</version>
</dependency>
获取集群链接
在Lindorm控制台开通搜索引擎服务后,可以在实例列表>数据库连接>搜索引擎页签中获取私网地址。
说明 SQL JDBC访问只支持私网访问。
创建索引
可通过集群管理页面创建索引表,具体请参见文档索引管理,同时可以参考文档中的步骤写入一些测试数据。
代码示例
import org.apache.solr.client.solrj.io.sql.DriverImpl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SqlDemo {
private static String zkHost = "私网地址";
private static String collection = "demoindex";
static {
try {
Class.forName(DriverImpl.class.getName());
} catch (Throwable t) {
t.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
SqlDemo.run();
}
public static void run() throws Exception {
Connection con = null;
ResultSet rs = null;
Statement stmt = null;
try {
con = DriverManager.getConnection("jdbc:solr://" + zkHost + "?collection=" + collection);
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT id,name_s,age_i FROM " + collection + " ORDER BY age_i desc");
while(rs.next()) {
System.out.println(rs.getString("id") + ",name=" + rs.getString("name_s") + ",age=" + rs.getInt("age_i"));
}
} catch (Exception e ) {
e.printStackTrace();
} finally {
if (null != rs) {
rs.close();
}
if (null != stmt) {
stmt.close();
}
con.close();
}
}
}
其它一些高级的SQL语法,可以加入我们的专家服务群或提工单进行咨询,具体详见专家服务。