zoukankan      html  css  js  c++  java
  • ElasticSearch java客户端更新时出现的错误:NoNodeAvailableException[None of the configured nodes are available

    // 存放html文件的目录
    	public static String DATA_DIR = "F:\data";
    
    	public static Client client;
    
    	static {
    		Settings settings = Settings.settingsBuilder().put("cluster.name", "bd-es").build();
    		try {
    			client = TransportClient.builder().settings(settings).build()
    					.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("es"), 19301))
    					.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("es"), 19302))
    					.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("es"), 19303));
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    /**
    	 * admin():管理索引库的。client.admin().indices()
    	 * 
    	 * 索引数据的管理:client.prepare
    	 * 
    	 */
    	@Test
    	public void createIndex() throws Exception {
    		IndicesExistsResponse resp = client.admin().indices().prepareExists("myindex").execute().actionGet();
    		if (resp.isExists()) {
    			client.admin().indices().prepareDelete("myindex").execute().actionGet();
    		}
    		client.admin().indices().prepareCreate("myindex").execute().actionGet();
    
    		new XContentFactory();
    
    		XContentBuilder builder = XContentFactory.jsonBuilder().startObject().startObject("htmlbean")
    				.startObject("properties").startObject("title").field("type", "string").field("store", "yes")
    				.field("analyzer", "ik_max_word").field("search_analyzer", "ik_max_word").endObject()
    				.startObject("content").field("type", "string").field("store", "yes").field("analyzer", "ik_max_word")
    				.field("search_analyzer", "ik_max_word").endObject()
    				// .startObject("url").field("type", "string")
    				// .field("store", "yes").field("analyzer", "ik_max_word")
    				// .field("search_analyzer", "ik_max_word").endObject()
    				.endObject().endObject().endObject();
    		PutMappingRequest mapping = Requests.putMappingRequest("myindex").type("htmlbean").source(builder);
    		client.admin().indices().putMapping(mapping).actionGet();
    
    	}
    

    改正两点后解决问题,
    一处是用19301端口 而不是19201.19201端口只是HTTP端口。
    第二处是"cluster.name", “bd-es” 要和config/elasticsearch.yml 配置的cluster.name一致。

  • 相关阅读:
    RT-Thread can
    scons自动化构建工具
    Android 数据库 SQLiteOpenHelper
    请确保二进制储存在指定的路径中,或者调试他以检查该二进制或相关的DLL文件
    攻防世界misc新手区前三题
    基于session对象实现简单的购物车应用
    MS Excel中的内部日期处理方法
    如何实现对指定日期进行增减日期操作结果的输出
    2020前端大厂最新面试题,这一波我是用“身子换来的”
    字节、拼多多前端面经!
  • 原文地址:https://www.cnblogs.com/ernst/p/12819177.html
Copyright © 2011-2022 走看看