使用java創建索引庫,es7舍棄了InetSocketTransportAddress,需要替換成TransportAddress,另外如果報錯NoNodeAvailableException的原因是es的版本不一致,需要保證maven的依賴版本和服務器es版本一致。
es7.x創建索引庫
@Test public void createIndex() throws Exception { // 1.創建一個Settings對象 Settings settings = Settings.builder().put("cluster.name", "my-elasticsearch").build(); // 2.創建一個客戶端Client對象,需要在傳入setting為empty TransportClient client = new PreBuiltTransportClient(settings.EMPTY); // 指定集群中節點的列表 client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9301)); client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9302)); client.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9303)); // 3.使用client對象創建一個索引庫,索引庫名稱為arm(前面為設置,get()為執行操作) client.admin().indices().prepareCreate("arm").get(); // 關閉client對象 client.close(); }
對比一下老版本es5.x 創建索引庫
@Test public void createIndex() throws Exception { // 1.創建一個Settings對象 Settings settings = Settings.builder().put("cluster.name", "my-elasticsearch").build(); // 2.創建一個客戶端Client對象 TransportClient client = new PreBuiltTransportClient(); // 指定集群中節點的列表 client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9303)); // 3.使用client對象創建一個索引庫,索引庫名稱為arm(前面為設置,get()為執行操作) client.admin().indices().prepareCreate("arm").get(); // 關閉client對象 client.close(); }