sql4esElasticsearch 的 JDBC 驅(qū)動(dòng)
sql4es,即 Sql-for-Elasticsearch,是 Elasticsearch 的 JDBC 驅(qū)動(dòng)程序。用于 Elasticsearch 2.0 - 2.4 版本實(shí)現(xiàn)大多數(shù) JDBC 接口:Connection、Statement、PreparedStatment、ResultSet、Batch 和 DataBase- / ResultSetMetadata。
用法
可以通過(guò)將jar文件(位于項(xiàng)目的releases目錄中)添加到所使用的工具/應(yīng)用中并加載名為 “nl.anchormen.sql4es.jdbc.ESDriver” 的驅(qū)動(dòng)程序來(lái)使用 sql4es 驅(qū)動(dòng)。驅(qū)動(dòng)程序需要具有以下格式的URL:jdbc:sql4es:// host:port / index?params。
host:es主機(jī)的主機(jī)名或ip主機(jī)(必需)
port:可選傳輸客戶端使用的端口號(hào)(默認(rèn)為9300)
index:在驅(qū)動(dòng)程序中設(shè)置活動(dòng)的可選索引。
params:用于影響驅(qū)動(dòng)程序內(nèi)部的可選參數(shù)集(指定其他主機(jī),在單個(gè)請(qǐng)求中獲取的最大文檔數(shù)等)。
// register the driver and get a connection for index 'myidx'
Class.forName("nl.anchormen.sql4es.jdbc.ESDriver");
Connection con = DriverManager.getConnection("jdbc:sql4es://localhost:9300/myidx?cluster.name=your-cluster-name");
Statement st = con.createStatement();
// execute a query on mytype within myidx
ResultSet rs = st.executeQuery("SELECT * FROM mytype WHERE something >= 42");
ResultSetMetaData rsmd = rs.getMetaData();
int nrCols = rsmd.getColumnCount();
// get other column information like type
while(rs.next()){
for(int i=1; i<=nrCols; i++){
System.out.println(rs.getObject(i));
}
}
rs.close();
con.close();評(píng)論
圖片
表情
