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语法,可以加入我们的专家服务群或提工单进行咨询,具体详见专家服务