프로덕션 환경에서 Elasticsearch 배포: 모범 사례 및 문제 해결 팁 - 인덱싱 및 데이터 업로드(2)

머리말

여기에 이미지 설명 삽입
"저자 홈페이지" : 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 명령을 사용하여 관리할 수 있습니다. 실제 응용 프로그램에서는 데이터 모델 및 쿼리 요구 사항에 따라 데이터를 업로드하고 쿼리하는 적절한 방법을 선택해야 합니다.

추천

출처blog.csdn.net/Why_does_it_work/article/details/132178257