當然也說明了一些建立 Collection 的一些條件,包括 Shard 的數量以及 Config 須先上傳到 Zookeeper
接下來介紹一下如何用 SolrJ 以及 RESTful 的方式建立一個 Collection
SolrJ 是一個套件能夠讓開發者透過 Java 的方式來操作 Solr,以下是建立 Collection 的片段程式
String zkHosts = "locahost:9983"; String collectionName = "testCollection1"; String confName = "testCollection1"; //Configuration Name (You must upload to zookeeper first) int shards = 3; CloudSolrServer server = new CloudSolrServer(zkHosts); CollectionAdminResponse response = CollectionAdminRequest.createCollection( collectionName, shards, confName , server); if(null != response.getErrorMessages()){ /* print error here */ for(Entryerror: response.getErrorMessages()){ result.addErrorMsg(error.getValue()); } } server.shutdown();
CollectionAdminRequest 有很多的重載方法,可以去查它的 API
畢竟建立一個 Collection 有很多參數可以設定,包括 最大的 Shard 數量 或是 route field 等等的
另外你如果不想寫 Java,你也可以透過 HTTP 的 GET 方法請求一段 RESTful 來達到目地
例如以下的 URL 請求效果會跟上面的 SolrJ 範例程式相等
http://localhost:8983/solr/admin/collections?
action=CREATE&
name=testCollection1&
numShards=3&
collection.configName=testCollection1
需要注意的是透過 RESTful 的方式不用指定 Zookeeper,但相對的你必須從你的 SolrCloud
中挑選任何一個節點來執行上述的 RESTful 請求
例如你有 host1 ~ host3 三個節點
那麼你對 host1, host2 或是 host3 發出上述的 RESTful (IP記得換掉)效果會是一樣的
沒有留言:
張貼留言