Solr14 - SolrJ操作SolrCloud叢集 (Solr的Java API)
阿新 • • 發佈:2019-01-05
文章目錄
1 pom.xml檔案的配置
專案的pom.xml依賴資訊請參照:
Solr09 - SolrJ操作Solr單機服務 (Solr的Java API)
2 SolrJ操作SolrCloud
public class SolrCloudTest {
// ZooKeeper地址
private static String zkHostString = "10.0.20.50:2181, 10.0.20.51:2181, 10.0.20.52:2181" ;
// collection預設名稱, 比如Solr伺服器上的collection是collection_shard1_replica1, 就是去掉"_shard1_replica1"的名稱
private static String defaultCollection = "my_collection";
// 客戶端連線超時時間
private static int zkClientTimeout = 3000;
// ZooKeeper連線超時時間
private static int zkConnectTimeout = 3000;
// cloudSolrServer實際
private CloudSolrServer cloudSolrServer;
// 測試方法之前構造 CloudSolrServer
@Before
public void init() {
cloudSolrServer = new CloudSolrServer(zkHostString);
cloudSolrServer.setDefaultCollection(defaultCollection);
cloudSolrServer.setZkClientTimeout(zkClientTimeout);
cloudSolrServer.setZkConnectTimeout(zkConnectTimeout);
cloudSolrServer. connect();
}
// 向SolrCloud中建立索引
@Test
public void testCreateIndexToSolrCloud() throws Exception {
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "100001");
document.addField("title", "李四");
cloudSolrServer.add(document);
cloudSolrServer.commit();
}
// 搜尋索引
@Test
public void testSearchIndexFromSolrCloud() throws Exception {
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
try {
QueryResponse response = cloudSolrServer.query(query);
SolrDocumentList docs = response.getResults();
System.out.println("文件個數: " + docs.getNumFound());
System.out.println("查詢時間: " + response.getQTime());
for (SolrDocument doc : docs) {
ArrayList title = (ArrayList) doc.getFieldValue("title");
String id = (String) doc.getFieldValue("id");
System.out.println("id: " + id);
System.out.println("title: " + title);
System.out.println();
}
} catch (SolrServerException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("Unknowned Exception!!!!");
e.printStackTrace();
}
}
// 刪除索引
@Test
public void testDeleteIndexFromSolrCloud() throws Exception {
// 根據id刪除
UpdateResponse response = cloudSolrServer.deleteById("zhangsan");
// 根據多個id刪除
// cloudSolrServer.deleteById(ids);
// 自動查詢條件刪除
// cloudSolrServer.deleteByQuery("product_keywords:教程");
// 提交
cloudSolrServer.commit();
}
}
版權宣告
作者: ma_shoufeng(馬瘦風)
出處: CSDN 馬瘦風的部落格
您的支援是對博主的極大鼓勵, 感謝您的閱讀.
本文版權歸博主所有, 歡迎轉載, 但未經博主同意必須保留此段宣告, 且在文章頁面明顯位置給出原文連結, 否則博主保留追究相關人員法律責任的權利.