머리말
"저자 홈페이지" : Sprite Youbai Bubbles
"개인 홈페이지" : Sprite 개인 홈페이지
"추천 칼럼" :
★ Java 원스톱 서비스 ★
★ 입문에서 숙달로 반응 ★
★ 멋진 프런트엔드 코드 공유 ★
★ 0에서 영웅으로, Vue가 신이 되는 길 ★
★ uniapp-구축에서 승진까지 ★
★ 0에서 영웅으로, Vue가 신이 되어가는 길 ★
★ 하나의 컬럼으로 알고리즘을 풀 수 있다 ★
★ 0부터 아키텍처에 대해 이야기하자 ★
★ 정교한 데이터 순환 방식 ★
★ 고급 백엔드로 가는 길 ★
기사 디렉토리
인덱스 관리
인덱싱은 Elasticsearch의 핵심 개념 중 하나입니다. 문서를 저장하고 검색하기 위한 데이터베이스의 테이블과 유사한 데이터 구조입니다. 이 문서에서는 Elasticsearch 인덱스를 생성, 업데이트, 삭제 및 유지 관리하는 방법을 설명하고 필드 유형 및 분석기를 매핑하는 방법을 알아봅니다.
인덱스 생성
1. Java API를 사용하여 인덱스 생성
Java API를 사용하여 새 인덱스를 만들 수 있습니다. 다음은 my_index라는 인덱스를 만드는 코드 예제입니다.
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
CreateIndexRequest request = new CreateIndexRequest("my_index");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);
위의 코드는 RestHighLevelClient 개체를 사용하여 my_index라는 인덱스를 만듭니다.
2. CURL 명령을 사용하여 인덱스 생성
색인은 CURL 명령을 통해 Elasticsearch에서 직접 생성할 수도 있습니다. 다음은 CURL 명령을 사용하여 my_index라는 인덱스를 생성하는 예입니다.
curl -XPUT 'localhost:9200/my_index?pretty'
인덱스 업데이트
1. Java API를 사용하여 인덱스 설정 업데이트
기존 색인의 설정은 Java API를 사용하여 업데이트할 수 있습니다. 다음은 my_index라는 인덱스에 대해 복제본 수를 1에서 2로 변경하는 코드의 예입니다.
UpdateSettingsRequest request = new UpdateSettingsRequest("my_index");
request.settings(Settings.builder()
.put("index.number_of_replicas", 2));
AcknowledgedResponse response = client.indices().putSettings(request, RequestOptions.DEFAULT);
위의 코드는 UpdateSettingsRequest 개체를 사용하여 my_index 인덱스의 복제본 수를 2로 변경합니다.
2. CURL 명령을 사용하여 인덱스 설정 업데이트
기존 색인의 설정은 CURL 명령을 사용하여 업데이트할 수 있습니다. 다음은 my_index라는 인덱스에 대해 복제본 수를 1에서 2로 변경하는 예입니다.
curl -XPUT 'localhost:9200/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'
{
"index" : {
"number_of_replicas" : 2
}
}
'
인덱스 삭제
1. Java API를 사용하여 인덱스 삭제
Java API를 사용하여 기존 인덱스를 삭제할 수 있습니다. 다음은 my_index라는 인덱스를 삭제하는 코드 예제입니다.
DeleteIndexRequest request = new DeleteIndexRequest("my_index");
AcknowledgeResponse response = client.indices().delete(request, RequestOptions.DEFAULT);
위의 코드는 DeleteIndexRequest 개체를 사용하여 my_index라는 인덱스를 삭제합니다.
2. CURL 명령을 사용하여 색인을 삭제합니다.
CURL 명령을 사용하여 기존 인덱스를 삭제할 수 있습니다. 다음은 my_index라는 인덱스를 삭제하는 예입니다.
curl -XDELETE 'localhost:9200/my_index?pretty'
필드 유형 및 분석기 매핑
인덱스를 만들 때 필드 유형과 분석기를 매핑해야 합니다. 필드 유형은 문자열, 숫자, 날짜 등과 같은 필드 값의 유형을 정의합니다. 분석기는 텍스트를 용어로 변환하기 위한 규칙을 정의합니다. 다음은 제목 및 콘텐츠 필드가 있는 인덱스를 생성하고 이 두 필드를 텍스트 유형에 매핑하는 예입니다.
CreateIndexRequest request = new CreateIndexRequest("my_index");
request.mapping("properties", "title", "type=text",
"analyzer=standard",
"fields=keyword",
"content", "type=text",
"analyzer=english");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);
위의 코드는 CreateIndexRequest 개체를 사용하여 my_index라는 인덱스를 만들고 제목 및 콘텐츠 필드가 포함된 텍스트 유형에 매핑합니다.
결론적으로
이 문서에서는 Elasticsearch 인덱스를 생성, 업데이트 및 삭제하는 방법과 필드 유형 및 분석기를 매핑하는 방법을 설명합니다. 인덱스를 생성할 때 검색 효율성을 높이기 위해 필드 유형 및 분석기를 고려해야 합니다. Elasticsearch 인덱스는 Java API 또는 CURL 명령을 사용하여 관리할 수 있습니다.
데이터 업로드 및 쿼리
Elasticsearch 인덱스에 데이터를 업로드하고 다양한 쿼리를 수행하는 것은 Elasticsearch를 사용하는 핵심 기능 중 하나입니다. 이 문서에서는 Elasticsearch 인덱스에 데이터를 업로드하고 다양한 쿼리를 사용하여 데이터를 검색하고 필터링하는 방법을 설명합니다.
Elasticsearch에 데이터 업로드
1. Java API를 사용하여 데이터 업로드
데이터는 Java API를 사용하여 Elasticsearch 색인에 업로드할 수 있습니다. 다음은 RestHighLevelClient 개체를 사용하여 my_index라는 인덱스에 문서를 업로드하는 코드 예제입니다.
IndexRequest request = new IndexRequest("my_index");
request.id("1");
String jsonString = "{" +
"\"name\":\"John\"," +
"\"age\":30," +
"\"city\":\"New York\"" +
"}";
request.source(jsonString, XContentType.JSON);
IndexResponse response = client.index(request, RequestOptions.DEFAULT);
위의 코드는 IndexRequest 개체를 사용하여 뉴욕에서 30세인 John이라는 문서를 my_index라는 인덱스에 업로드합니다.
2. CURL 명령을 사용하여 데이터 업로드
데이터는 CURL 명령을 사용하여 Elasticsearch 인덱스에 업로드할 수도 있습니다. 다음은 뉴욕에서 my_index라는 인덱스로 John(30세)이라는 문서를 업로드하는 예입니다.
curl -XPOST 'localhost:9200/my_index/_doc/1?pretty' -H 'Content-Type: application/json' -d'
{
"name": "John",
"age": 30,
"city": "New York"
}
'
데이터 검색 및 필터링
1. Java API를 사용하여 데이터 검색 및 필터링
Elasticsearch 인덱스의 데이터는 Java API를 사용하여 검색 및 필터링할 수 있습니다. 다음은 RestHighLevelClient 개체를 사용하여 간단한 match_all 쿼리를 수행하는 코드 예제입니다.
SearchRequest request = new SearchRequest("my_index");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
request.source(sourceBuilder);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
위의 코드는 SearchRequest 개체와 SearchSourceBuilder 개체를 사용하여 간단한 match_all 쿼리를 수행하고 모든 문서를 반환합니다.
2. CURL 명령을 사용하여 데이터 검색 및 필터링
CURL 명령을 사용하여 Elasticsearch 인덱스에서 데이터를 검색하고 필터링하는 것도 가능합니다. 다음은 match_all 쿼리를 사용하여 my_index라는 인덱스의 모든 문서를 검색하는 예입니다.
curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {
}
}
}
'
결론적으로
이 문서에서는 Elasticsearch 인덱스에 데이터를 업로드하고 다양한 쿼리를 사용하여 데이터를 검색하고 필터링하는 방법을 설명합니다. Elasticsearch 인덱스는 유연하고 사용하기 쉬운 Java API 또는 CURL 명령을 사용하여 관리할 수 있습니다. 실제 응용 프로그램에서는 데이터 모델 및 쿼리 요구 사항에 따라 데이터를 업로드하고 쿼리하는 적절한 방법을 선택해야 합니다.