中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solrcloud和solr在集群中建立索方法是什么

發布時間:2021-12-22 11:36:11 來源:億速云 閱讀:261 作者:iii 欄目:云計算

本篇內容介紹了“solrcloud和solr在集群中建立索方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1 通過通過zookeeper通道建立索引

public static void main(String[] args) throws IOException, SolrServerException {
        //注意,zkHost在windows偽分布式與hadoop分布式設置不一樣
        //windows偽分布式zkHost最后不需要加"/solr",linux的hadoop中需要添加"/solr"
		String zkHost = "node1:2181,node2:2181,node3:2181/solr";
		String defaultCollection = "collection1";
		CloudSolrServer server = new CloudSolrServer(zkHost);
		server.setDefaultCollection(defaultCollection); 		
		for (int i = 0; i < 1000; ++i) {
			SolrInputDocument doc = new SolrInputDocument();
			doc.addField("cat", "book");
			doc.addField("id", "book-" + i);
			doc.addField("name", "The Legend of Po part " + i);
			server.add(doc);
			if (i % 100 == 0)
				server.commit(); // periodically flush
		}
		server.commit();
	}

2  注意,CDH中,可以看zookeeper的設置,最大鏈接數為60,所以對于zookeeper一般用單例

public class myCloudSolrServer {

    // solrServer
    public static CloudSolrServer solrServer;

    
    //效率不高的方法
//    public static synchronized CloudSolrServer getSolrServer() {
//        if (solrServer == null) {
//            try {
//                solrServer = new CloudSolrServer(Const.ZK_HOST + "/solr");
//                final int zkClientTimeout = 20000; // 心跳20秒
//                final int zkConnectTimeout = 10000; // 設置鏈接主機超時(單位毫秒)
//
//                solrServer.setDefaultCollection(Const.defaultCollection);
//                solrServer.setZkClientTimeout(zkClientTimeout);
//                solrServer.setZkConnectTimeout(zkConnectTimeout);
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//        return solrServer;
//    }

    //支持大并發方法
    public static CloudSolrServer getSolrServer() {
        if (solrServer == null) {
            synchronized (myCloudSolrServer.class) {
                if (solrServer == null) {
                    try {
                        solrServer = new CloudSolrServer(Const.ZK_HOST + "/solr");
                        final int zkClientTimeout = 20000; // 心跳20秒
                        final int zkConnectTimeout = 10000; // 設置鏈接主機超時(單位毫秒)
                        solrServer.setDefaultCollection(Const.defaultCollection);
                        solrServer.setZkClientTimeout(zkClientTimeout);
                        solrServer.setZkConnectTimeout(zkConnectTimeout);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        return solrServer;
    }
}

3  急群中可以指定到某個分片

public static void main(String[] args) throws IOException, SolrServerException {
		String url= "node1:8983/solr/core_shard1_replica1";
		String defaultCollection = "collection1";
		HttpSolrServer server = new HttpSolrServer (url);	
		server.setDefaultCollection(defaultCollection); 	
		
		for (int i = 0; i < 1000; ++i) {
			SolrInputDocument doc = new SolrInputDocument();
			doc.addField("cat", "book");
			doc.addField("id", "book-" + i);
			doc.addField("name", "The Legend of Po part " + i);
			server.add(doc);
			if (i % 100 == 0)
				server.commit(); // periodically flush
		}
		server.commit();
	}

   注意,在建立索引的時候,不要每一個就去commit,為了提高效率,一般用

 Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
 for(){
 SolrInputDocument doc = new SolrInputDocument();  
 docs.add(doc);
 }
  server.add(docs);
  server.commit();

 其實 server.commit()效率也不高,一般用軟提交

“solrcloud和solr在集群中建立索方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

革吉县| 海伦市| 辽阳县| 新蔡县| 鹤峰县| 屏山县| 虹口区| 文化| 江达县| 昆山市| 钟山县| 双鸭山市| 驻马店市| 布拖县| 彰化县| 东阳市| 确山县| 偃师市| 瑞丽市| 长武县| 通道| 安塞县| 合江县| 宜兰市| 文山县| 峨边| 湛江市| 铁岭市| 吐鲁番市| 黑水县| 福州市| 白银市| 筠连县| 邳州市| 九龙坡区| 古蔺县| 喀喇| 虎林市| 无棣县| 桑日县| 永宁县|