Elasticsearch Java REST 고급 클 라 이언 트-DocumentApi
7782 단어 ElasticSearch빅 데이터
버 전:Elasticsearch 7.2.0
Elasticsearch 를 7 로 업그레이드 하면 TransportClient 라 는 클 라 이언 트 가 시간 이 지 났 고 PreBuilt TransportClient 라 는 클 라 이언 트 가 삭제 되 었 습 니 다.그러면 현재 자바 클 라 이언 트 를 어떻게 사용 합 니까?Elasticsearch 는 REST 고급 클 라 이언 트 RestHigh LevelClient 를 사용 하 는 것 을 공식 적 으로 권장 합 니 다.말 이 많 지 않 으 니 예 를 들 어 보 세 요.
클 라 이언 트 생 성 및 닫 기
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spring-data-elasticsearch 페이지 조회부록: 1. 이름에서 알 수 있듯이QueryBuilder는 검색 조건, 필터 조건을 구축하는 데 사용되고 SortBuilder는 정렬을 구축하는 데 사용된다. 예를 들어 우리는 어느 위치에서 100미터 범위 내의 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.