Elasticsearch Java REST 고급 클 라 이언 트-DocumentApi

Elasticsearch Java REST 고급 클 라 이언 트-DocumentApi
버 전:Elasticsearch 7.2.0
Elasticsearch 를 7 로 업그레이드 하면 TransportClient 라 는 클 라 이언 트 가 시간 이 지 났 고 PreBuilt TransportClient 라 는 클 라 이언 트 가 삭제 되 었 습 니 다.그러면 현재 자바 클 라 이언 트 를 어떻게 사용 합 니까?Elasticsearch 는 REST 고급 클 라 이언 트 RestHigh LevelClient 를 사용 하 는 것 을 공식 적 으로 권장 합 니 다.말 이 많 지 않 으 니 예 를 들 어 보 세 요.
클 라 이언 트 생 성 및 닫 기
  • 데이터 삽입(존재 하면 업데이트)index()
  • 문서 get()가 져 오기
  • 문서 존재 여부 exists()
  • 문서 삭제()
  • 업데이트 업데이트()대량 업데이트 bulk()
  • 대량 조회 multiGet()
  • 비동기 조작
    maven 설정
    인공지능 에 관심 이 있 는 학생 은 다음 링크 를 클릭 할 수 있 습 니 다.
    현재 인공지능 이 매우 뜨 거 워 서 많은 친구 들 이 배우 고 싶 어 하지만 일반적인 튜 토리 얼 은 박 석 생 을 위 한 것 이기 때문에 이해 하기 어렵다.최근 소 백 입문 에 적합 한 튜 토리 얼 을 발견 했다.통속 적 이 고 알 기 쉬 울 뿐만 아니 라 유머 러 스 하 다.그래서 참 지 못 하고 나 눠 드 리 겠 습 니 다.여 기 를 누 르 면 튜 토리 얼 로 넘 어 갈 수 있 습 니 다.
    https://www.cbedai.net/u014646662
    1.클 라 이언 트 생 성 및 닫 기
    	/**
    	 *      
    	 * 
    	 * @return
    	 */
    	private static RestHighLevelClient getClient() {
    		RestHighLevelClient client = new RestHighLevelClient(
    				RestClient.builder(
    						new HttpHost("node01", 9200, "http"), 
    						new HttpHost("node02", 9200, "http"),
    						new HttpHost("node03", 9200, "http")));
    		return client;
    	}
    
    
    /**
    	 *      
    	 * 
    	 * @param client
    	 */
    	private static void close(RestHighLevelClient client) {
    		try {
    			client.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}

    2.데이터 삽입(존재 하면 업데이트)index()
    /**
    	 *       (       )
    	 */
    	public static void index() {
    		RestHighLevelClient client = getClient();
    
    		Map jsonMap = new HashMap<>();
    		jsonMap.put("user", "kimchy");
    		jsonMap.put("postDate", new Date());
    		jsonMap.put("message", "trying out Elasticsearch");
    		IndexRequest request = new IndexRequest("user").id("1").source(jsonMap);
    
    		IndexResponse response = null;
    		try {
    			response = client.index(request, RequestOptions.DEFAULT);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    		String index = response.getIndex();
    		String id = response.getId();
    		System.out.println(index + "---" + id);
    
    		close(client);
    	}

    3.문서 get 가 져 오기()
    /**
    	 *       
    	 */
    	public static void get() {
    		RestHighLevelClient client = getClient();
    		GetRequest getRequest = new GetRequest("user", "1");
    		try {
    			GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);
    			String index = getResponse.getIndex();
    			String id = getResponse.getId();
    			if (getResponse.isExists()) {
    				long version = getResponse.getVersion();
    				String sourceAsString = getResponse.getSourceAsString();
    				Map sourceAsMap = getResponse.getSourceAsMap();
    				byte[] sourceAsBytes = getResponse.getSourceAsBytes();
    
    				System.out.println("  :" + index + ",ID:" + id + "  :" + version);
    				System.out.println(sourceAsString);
    				System.out.println(sourceAsMap);
    				System.out.println(sourceAsBytes.toString());
    			} else {
    				System.out.println("     ");
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		close(client);
    	}

    4.문서 가 존재 하 는 지 여부()
    /**
    	 *       
    	 */
    	public static void exists() {
    		RestHighLevelClient client = getClient();
    		GetRequest getRequest = new GetRequest("user", "1");
    		//     _source
    		getRequest.fetchSourceContext(new FetchSourceContext(false));
    		//         
    		getRequest.storedFields("_none_");
    		try {
    			boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);
    			System.out.println(getRequest.index() + "---" + getRequest.id() + "---      :" + exists);
    		} catch (IOException e) {
    			// TODO       catch  
    			e.printStackTrace();
    		}
    		close(client);
    	}

    5.문서 삭제()
    /**
    	 *     
    	 */
    	public static void delete() {
    		RestHighLevelClient client = getClient();
    		DeleteRequest deleteRequest = new DeleteRequest("user", "1");
    		try {
    			client.delete(deleteRequest, RequestOptions.DEFAULT);
    			System.out.println(deleteRequest.index() + "---" + deleteRequest.id() + ":      ");
    			exists();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		close(client);
    	}

    6.업데이트 업데이트()
    public static void update() {
    		RestHighLevelClient client = getClient();
    		Map jsonMap = new HashMap<>();
    		jsonMap.put("updated", new Date());
    		jsonMap.put("reason", "daily update");
    		UpdateRequest request = new UpdateRequest("user", "2").doc(jsonMap);
    		try {
    			UpdateResponse response = client.update(request, RequestOptions.DEFAULT);
    			System.out.println(response.getIndex() + "---" + response.getId() + "    ");
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		close(client);
    	}

    7.대량 업데이트 bulk()
    
    	/**
    	 *     
    	 */
    	public static void bulk() {
    		RestHighLevelClient client = getClient();
    
    		BulkRequest request = new BulkRequest();
    		request.add(new IndexRequest("user").id("3").source(XContentType.JSON, "field", "foo", "user", "lucky"));
    		request.add(new IndexRequest("user").id("4").source(XContentType.JSON, "field", "bar", "user", "Jon"));
    		request.add(new IndexRequest("user").id("5").source(XContentType.JSON, "field", "baz", "user", "Lucy"));
    		// id 10    
    		request.add(new DeleteRequest("user", "3"));
    		request.add(new UpdateRequest("user", "2").doc(XContentType.JSON, "other", "test"));
    		BulkResponse bulkResponse = null;
    		try {
    			bulkResponse = client.bulk(request, RequestOptions.DEFAULT);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		//       
    		System.out.println("        :" + bulkResponse.status());
    		close(client);
    	}

    8.멀티캐스트 일괄 조회()
    //     
    	public static void multiGet() {
    		RestHighLevelClient client = getClient();
    
    		MultiGetRequest request = new MultiGetRequest();
    		request.add(new MultiGetRequest.Item("user", "2"));
    		request.add(new MultiGetRequest.Item("user", "4"));
    		request.add(new MultiGetRequest.Item("user", "5"));
    
    		MultiGetResponse mget = null;
    		try {
    			mget = client.mget(request, RequestOptions.DEFAULT);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		//       
    		System.out.println("mget:");
    		mget.forEach(item -> System.out.println(item.getResponse().getSourceAsString()));
    		close(client);
    	}

    9.비동기 동작
    이상 의 방법 은 모두 동기 적 인 조작 이 고 비동기 적 인 조작 이 아니 기 때문에 이런 조작 은 모두 차단 식 조작 으로 결 과 를 찾 을 때 까지 알 수 있다.비동기 동작 에 대해 서 는 코드 만 표시 하고 예 를 들 지 않 습 니 다.
    ActionListener listener = new ActionListener() {
        @Override
        public void onResponse(SearchResponse searchResponse) {
            //     
        }
    
        @Override
        public void onFailure(Exception e) {
            //     
        }
    };
    
    client.indexAsync(request, RequestOptions.DEFAULT, listener);

    10.maven
    
    			org.elasticsearch.plugin
    			x-pack-sql-jdbc
    			7.2.0
    
    		
    
    		
    			org.elasticsearch.client
    			elasticsearch-rest-high-level-client
    			7.2.0
    
    		

    좋은 웹페이지 즐겨찾기