1. 程式人生 > >Solr14 - SolrJ操作SolrCloud叢集 (Solr的Java API)

Solr14 - SolrJ操作SolrCloud叢集 (Solr的Java API)

文章目錄

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 馬瘦風的部落格

您的支援是對博主的極大鼓勵, 感謝您的閱讀.

本文版權歸博主所有, 歡迎轉載, 但未經博主同意必須保留此段宣告, 且在文章頁面明顯位置給出原文連結, 否則博主保留追究相關人員法律責任的權利.