Docs Menu
Docs Home
/
MongoDB Atlas
/ /

Atlas Search 인덱스 편집

이 페이지의 내용

  • 필요한 액세스 권한
  • Atlas Search 인덱스 편집

기존 Atlas Search 인덱스의 인덱스 정의를 변경할 수 있습니다. 인덱스의 이름은 바꿀 수 없습니다. 인덱스의 이름을 변경해야 하는 경우 새 인덱스를 만들고 이전 인덱스는 삭제해야 합니다.

다음 표는 각 역할이 지원하는 액세스 모드를 보여줍니다.

역할
작업
Atlas UI
Atlas API
Atlas Search API
Atlas CLI

Atlas Search 분석기 및 인덱스를 보려면 다음 단계를 따르세요.

Project Data Access Admin 이상의 역할

Atlas Search 분석기 및 인덱스를 생성 및 관리하고 API 키에 역할을 할당합니다.

API 키에 대한 액세스 생성 목록 항목을 만들고 API 키에 대한 액세스 목록에 표시되는 클라이언트에서 요청을 보냅니다.

Atlas UI 또는 API를 사용하여 Atlas Search 인덱스를 생성, 확인, 편집 및 삭제합니다.

Atlas UI에서 또는 mongosh, Atlas CLI, API 또는 원하는 언어로 지원되는 MongoDB 드라이버 를 사용하여 프로그래밍 방식으로 Atlas Search 인덱스를 편집할 수 있습니다.

참고

명령 또는 운전자 헬퍼 메서드를 사용하여 모든 Atlas cluster 계층에서 Atlas Search 인덱스를 편집할 수 있습니다.mongosh 지원되는 운전자 버전 목록은 MongoDB 드라이버를 참조하세요.

인덱스가 포함된 데이터베이스에 대해 최소한 atlasAdmin 역할 또는 dbAdmin 액세스 권한이 있어야 합니다. 자세히 알아보려면 기본 제공 역할 또는 특정 권한을참조하세요.


언어 선택 드롭다운 메뉴를 사용하여 이 섹션에 있는 예시의 언어를 설정합니다.


API를 통해 Atlas Search 인덱스를 편집하려면 다음을 수행하세요.

1

수정하려는 Atlas Search 인덱스의 고유 ID 또는 이름을 사용하여 search/indexes/ 엔드포인트에 PATCH 요청을 보냅니다.

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes/{indexId}" \
--data '
{
"definition":
{
"analyzer": "lucene.<analyzer>",
"analyzers": [
{
"charFilters": [ ... ],
"name": "string",
"tokenFilters": [ ... ],
"tokenizer": { ... }
}
],
"mappings": {
"dynamic": true | false,
"fields": {
"property1": {},
...
}
},
"searchAnalyzer": "lucene.<analyzer>",
"storedSource": {
"include | exclude": [...]
},
"synonyms": [
{
"analyzer": "lucene.<analyzer>",
"name": "string",
"source": {
"collection": "string"
}
}
]
}
}'

각 엔드포인트에 대한 구문과 매개변수에 대해 자세히 알아보려면 이름으로 하나씩 업데이트ID로 하나씩 업데이트를 참조하세요.

2

Atlas CLI를 사용하여 클러스터의 검색 인덱스를 업데이트하려면 다음 명령을 실행하세요.

atlas clusters search indexes update <indexId> [options]

명령 구문 및 매개변수에 대한 자세한 내용은 Atlas CLI 문서에서 Atlas 클러스터 검색 인덱스 업데이트를 참조하세요.

참조: 관련 링크

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.

    Clusters(클러스터) 페이지가 표시됩니다.

2

사이드바, Data Explorer 또는 클러스터 세부 정보 페이지에서 Atlas Search 페이지로 이동할 수 있습니다.

  1. 사이드바에서 Services 제목 아래의 Atlas Search를 클릭합니다.

  2. Select data source 드롭다운에서 클러스터를 선택하고 Go to Atlas Search를 클릭합니다.

    Atlas Search 페이지가 표시됩니다.

  1. cluster의 Browse Collections 버튼을 클릭합니다.

  2. 데이터베이스를 확장하고 컬렉션을 선택합니다.

  3. 컬렉션의 Search Indexes 탭을 클릭합니다.

    Atlas Search 페이지가 표시됩니다.

  1. 클러스터 이름을 클릭합니다.

  2. Atlas Search 탭을 클릭합니다.

    Atlas Search 페이지가 표시됩니다.

3
  • Edit with Visual Editor 안내를 따라 진행하고자 하는 경우.

  • Edit with JSON Editor 원시 인덱스 정의를 편집합니다.

4

다음 인덱스 구성 설정을 검토합니다.

필드 이름
설명
필요성

Index Analyzer

컬렉션 데이터 인덱싱에 사용할 분석기를 지정합니다. 기본적으로 Atlas Search는 표준 분석기("lucene.standard")를 사용합니다.

analyzer JSON 설정에 해당합니다.

옵션

Query Analyzer

텍스트를 검색하기 전에 쿼리 텍스트에 적용할 분석기를 지정합니다. 이 필드를 생략하면 인덱스는 기본적으로 다음 순서로 분석기를 상속합니다.

  1. 지정된 경우 이 필드에 대한 analyzer 옵션입니다.

  2. 지정된 경우 인덱스 에 대한 searchAnalyzer 옵션입니다.

  3. 지정된 경우 인덱스 에 대한 analyzer 옵션입니다.

  4. lucene.standard 분석기입니다.

searchAnalyzer JSON 설정에 해당합니다.

옵션

Dynamic Mapping

필드의 동적 또는 정적 매핑을 지정합니다. 동적 매핑을 사용하지 않으려면 "dynamic":Off로 설정합니다. 기본적으로 동적 매핑은 활성화되어 있습니다. 동적 매핑을 비활성화하는 경우 인덱싱할 필드를 지정해야 합니다. 동적 및 정적 매핑에 대해 자세히 알아보려면 Atlas Search 인덱스 구문 검토를참조하세요.

mappings.dynamic JSON 설정에 해당합니다.

필수 사항

다음 고급 구성 설정을 검토하세요.

필드 이름
설명
필요성

Field Mappings

1}Dynamic Mapping Index Configurations 섹션의 이 비활성화된 경우 필수입니다.

자신만의 필드 매핑을 정의하는 것은 고급 사용자에게만 권장됩니다.

인덱싱할 필드를 지정합니다. 필드를 추가하려면 다음을 수행해야 합니다.

  1. Add Field 을 클릭하여 Add Field Mapping 창을 엽니다.

  2. 필드에 대해 다음 정보를 지정합니다.

    • Field name - 인덱싱할 필드의 이름입니다.

    • Data Type Configuration - 필드 데이터 유형입니다. 지원되는 데이터 유형과 해당 옵션에 대해 자세히 알아보려면 데이터 유형 을 참조하세요.

    • Enable Dynamic Mapping - 문서embeddedDocument 유형의 필드에 사용할 정적 또는 동적 매핑. 동적 매핑을 비활성화하면 필드의 데이터가 자동으로 인덱싱되지 않습니다.

  3. 필드를 추가하려면 Add을 클릭합니다.

    선택적으로 Actions 열에 있는 필드의 줄임표 (...) 아이콘을 클릭하여 다음을 수행할 수 있습니다.

    • 0}을 클릭하여 필드에 대한 설정을 Edit 수정합니다.

    • 0}을 클릭하여 필드에 대한 추가 데이터 유형을 Add Data Type 구성합니다.

    • Delete 을(를) 클릭하여 색인에서 필드를 제거합니다.

Atlas Search 인덱스 정의의 필드를 어떤 순서로든 정의할 수 있습니다.

mappings.fields JSON 설정에 해당합니다.

조건부

Stored Source Fields

Atlas Search에 저장할 필드를 지정합니다. 다음 중 하나를 선택할 수 있습니다.

  • None - (기본값) 이 옵션을 선택하면 Atlas Search는 어떤 필드도 저장하지 않습니다.

  • All - 이 옵션을 선택하면 Atlas Search가 문서의 모든 필드를 저장합니다.

  • Specified - 선택하면 Atlas Search는 _id 및 사용자가 지정한 필드를 저장합니다. 다음을 수행하여 필드를 지정할 수 있습니다.

    1. Field Name 열의 드롭다운에서 Atlas Search에 저장할 필드를 선택합니다.

    2. 저장할 필드 목록에 필드를 추가하려면 Add을 클릭합니다.

    3. Add Field을 클릭하고 목록에 추가할 각 필드에 대해 a, b 단계를 반복합니다.

    4. (선택 사항) 다음 중 하나를 클릭합니다.

      • Edit 다른 필드를 선택합니다.

      • Delete 저장할 필드 목록에서 필드를 제거합니다.

  • All Except Specified - 이 옵션을 선택하면 Atlas Search에서 특정 필드를 Atlas Search의 저장소에서 제외합니다.

    1. Field Name열의 드롭다운에서 제외할 필드를 선택합니다.

    2. 제외할 필드 목록에 필드를 추가하려면 Add을 클릭합니다.

    3. Add Field을 클릭하고 목록에서 제외할 각 필드에 대해 a, b 단계를 반복합니다.

    4. (선택 사항) 다음 중 하나를 클릭합니다.

      • Edit 다른 필드를 선택합니다.

      • Delete 제외할 필드 목록에서 필드를 제거합니다.

필드 저장에 관한 자세한 사항은 Atlas 검색 인덱스에서 저장된 소스 필드 정의를 참조하십시오.

storedSource JSON 설정에 해당합니다.

옵션

Synonyms Mappings

인덱스에 사용할 동의어 매핑을 지정합니다. 자세한 사항은 Atlas Search 인덱스에서 동의어 매핑 정의를 참조하십시오.

동의어 매핑을 추가하려면 각 동의어에 대해 다음 설정을 지정해야 합니다.

  • Synonym mapping name - 쿼리 시 참조할 동의어 매핑을 식별하는 레이블입니다. 고유한 값을 지정해야 합니다. 빈 문자열 값은 지정할 수 없습니다.

  • Synonym source collection - Atlas Search 인덱스와 동일한 데이터베이스에서 MongoDB 컬렉션을 식별하는 레이블입니다. 이 컬렉션의 문서는 동의어 소스 컬렉션 문서에 설명된 형식을 사용합니다. 빈 컬렉션을 추가하거나 샘플 컬렉션을 로드할 수도 있습니다.

  • Analyzer - 이 동의어 매핑에 사용할 분석기를 식별하는 레이블입니다.

    동의어 매핑을 사용하여 동일한 분석기로 분석된 필드만 쿼리할 수 있습니다. 기본적으로 Atlas Search은 표준 분석기("lucene.standard")를 사용합니다.

    다음을 제외한 모든 Atlas Search 분석기를 지정할 수 있습니다.

synonyms JSON 설정에 해당합니다.

선택 사항.

Index Partitions

필드 객체가 2.1 십억을 초과하는 경우 사용할 파티션 수입니다.

numPartitions JSON 설정에 해당합니다.

중요

옵션은 numPartitions 미리보기 기능 으로 사용할 수 있습니다.

선택 사항.

다음 인덱스 구성 설정을 검토합니다.

필드 이름
설명
필요성

analyzer

컬렉션 데이터 인덱싱에 사용할 분석기를 지정합니다. 기본적으로 Atlas Search는 표준 분석기("lucene.standard")를 사용합니다.

옵션

searchAnalyzer

텍스트를 검색하기 전에 쿼리 텍스트에 적용할 분석기를 지정합니다. 이 필드를 생략하면 인덱스는 기본적으로 다음 순서로 분석기를 상속합니다.

  1. 지정된 경우 이 필드에 대한 analyzer 옵션입니다.

  2. 지정된 경우 인덱스 에 대한 searchAnalyzer 옵션입니다.

  3. 지정된 경우 인덱스 에 대한 analyzer 옵션입니다.

  4. lucene.standard 분석기입니다.

옵션

mappings.dynamic

필드의 동적 또는 정적 매핑을 지정합니다. 동적 매핑을 사용하지 않으려면 "dynamic":false로 설정합니다. 기본적으로 동적 매핑은 활성화되어 있습니다. 동적 매핑을 비활성화하는 경우 인덱싱할 필드를 지정해야 합니다. 동적 및 정적 매핑에 대해 자세히 알아보려면 Atlas Search 인덱스 구문 검토를참조하세요.

필수 사항

다음 고급 구성 설정을 검토하세요.

필드 이름
설명
필요성

mappings.fields

mappings.dynamicfalse인 경우 필요합니다.

자신만의 필드 매핑을 정의하는 것은 고급 사용자에게만 권장됩니다.

인덱싱할 필드를 지정합니다. 자세한 내용은 필드 매핑 정의를 참조하세요.

Atlas Search 인덱스 정의의 필드를 어떤 순서로든 정의할 수 있습니다.

조건부

storedSource

Atlas Search에 저장할 문서의 필드를 지정하세요. 값은 다음 중 하나일 수 있습니다.

  • true, 모든 필드를 저장하려는 경우

  • false, 어떤 필드도 저장하지 않으려는 경우

  • 스토리지에서 include 또는 exclude으로 필드를 지정하는 객체입니다.

생략하는 경우 기본값은 false입니다.

storedSource 은 다음 버전 중 하나를 실행하는 Atlas 클러스터에서만 사용할 수 있습니다.

  • MongoDB 5.0.6+

  • MongoDB 6.0+

  • MongoDB 7.0+

Atlas Search에서는 지원되는 모든 데이터 유형의 필드를 저장할 수 있습니다. 구문 및 필드에 관한 자세한 내용은 Atlas 검색 인덱스에서 저장된 소스 필드 정의를 참조하세요.

옵션

synonyms

인덱스에 사용할 동의어 매핑을 지정합니다. 자세한 사항은 Atlas Search 인덱스에서 동의어 매핑 정의를 참조하십시오.

동의어 매핑을 사용하여 동일한 분석기로 분석된 필드만 쿼리할 수 있습니다. 기본적으로 Atlas Search은 표준 분석기("lucene.standard")를 사용합니다.

옵션

numPartitions

필드 객체가 2.1 십억을 초과하는 경우 사용할 파티션 수입니다. .. include:: /includes/fact-numpartitions-preview.rst

선택 사항.

인덱스 정의 설정을 자세히 알아보려면 Atlas 검색 인덱스 구문 검토를 참조하세요.

5

인덱스의 상태가 Active에서 Building으로 변경됩니다. 이 상태에서는 Atlas Search가 업데이트된 인덱스를 사용할 준비가 될 때까지 이전 인덱스를 삭제하지 않으므로 이전 인덱스를 계속 사용할 수 있습니다. 상태가 Active로 돌아가면 수정된 인덱스를 사용할 준비가 된 것입니다.

mongosh 을(를) 통해 Atlas Search 인덱스를 편집하려면 db.collection.updateSearchIndex() 메서드를 사용합니다.

명령의 구문은 다음과 같습니다. 편집하려는 인덱스의 이름을 지정하고 새 인덱스 정의를 정의합니다. 이 정의는 인덱스의 기존 정의를 대체합니다. 자세히 알아보려면 Atlas Search 검색 인덱스 구문 검토를 참조하세요.

db.<collection>.updateSearchIndex(
"<index-name>",
/* updated search index definition */
)

다음 명령은 default movies 정적 매핑 을사용하도록 collection에서 검색 인덱스라는 를 업데이트합니다.

db.movies.updateSearchIndex(
"default",
{
"mappings": {
"dynamic": false,
"fields": {
"<field-name>": {
"type": "<field-type>"
}
}
}
)

참고

db.collection.updateSearchIndex() 명령은 출력을 반환하지 않습니다. Atlas UI를 사용하여 인덱스 상태를 볼 수 있습니다.

C 드라이버를 사용하여 Atlas Search 인덱스를 편집하려면 애플리케이션에서 업데이트된 색인 정보를 지정하고 mongoc_collection_command_simple() 메서드를 호출하세요.

1
2

다음 샘플 애플리케이션은 updateSearchIndex 명령, 업데이트된 인덱스 정의 및 기존 인덱스 이름을 지정합니다. 그런 다음, 애플리케이션은 명령과 업데이트된 인덱스 정보를 BSON으로 변환하고 이 정보를 mongoc_collection_command_simple() 메서드에 전달하여 검색 인덱스를 편집합니다.

#include <mongoc/mongoc.h>
#include <stdlib.h>
int main (void)
{
mongoc_client_t *client = NULL;
mongoc_collection_t *collection = NULL;
mongoc_database_t *database = NULL;
bson_error_t error;
bson_t cmd = BSON_INITIALIZER;
bool ok = true;
mongoc_init();
// Connect to your Atlas deployment
client = mongoc_client_new("<connectionString>");
if (!client) {
fprintf(stderr, "Failed to create a MongoDB client.\n");
ok = false;
goto cleanup;
}
// Access your database and collection
database = mongoc_client_get_database(client, "<databaseName>");
collection = mongoc_database_get_collection(database, "<collectionName>");
// Specify the command and the updated index definition
const char *cmd_str = BSON_STR({
"updateSearchIndex" : "<collectionName>",
"definition" : {"mappings" : {"dynamic" : true}},
"name" : "<indexName>"
});
// Convert your command to BSON
if (!bson_init_from_json(&cmd, cmd_str, -1, &error)) {
fprintf(stderr, "Failed to parse command: %s\n", error.message);
ok = false;
goto cleanup;
}
// Update the Atlas search index by running the command
if (!mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) {
fprintf(stderr, "Failed to run updateSearchIndex: %s\n", error.message);
ok = false;
goto cleanup;
}
printf ("Index updated!\n");
cleanup:
mongoc_collection_destroy (collection);
mongoc_database_destroy (database);
mongoc_client_destroy (client);
bson_destroy (&cmd);
mongoc_cleanup ();
return ok ? EXIT_SUCCESS : EXIT_FAILURE;
}
3
4
gcc -o edit-index edit-index.c $(pkg-config --libs --cflags libmongoc-1.0)
./edit-index

C++ 드라이버를 사용하여 Atlas Search 인덱스를 편집하려면 검색 인덱스 뷰에서 update_one() 메서드를 호출합니다.

1
2

다음 샘플 애플리케이션은 검색 인덱스 뷰를 인스턴스화하고 새 Atlas Search 인덱스 정의를 지정합니다. 그런 다음 애플리케이션은 이 정의와 기존 인덱스 이름을 update_one() 메서드에 전달합니다. 이 메서드는 새 정의 문서를 반영하도록 기존 인덱스를 업데이트합니다.

#include <bsoncxx/builder/basic/document.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/search_index_view.hpp>
using namespace mongocxx;
using bsoncxx::builder::basic::make_document;
int main()
{
mongocxx::instance instance{};
try
{
// Connect to your Atlas deployment
mongocxx::uri uri("<connectionString>");
mongocxx::client client(uri);
// Access your database and collection
auto db = client["<databaseName>"];
auto collection = db["<collectionName>"];
// Access the indexes in your collection
auto siv = collection.search_indexes();
// Specify a new definiton and update your search index
auto newDefinition = make_document(kvp("mappings", make_document(kvp("dynamic", true))));
siv.update_one("<indexName>", newDefinition.view());
}
catch (const std::exception& e)
{
std::cout<< "Exception: " << e.what() << std::endl;
}
return 0;
}
3
4
g++ -o edit-index edit-index.cpp $(pkg-config --cflags --libs libmongocxx)
./edit-index

.NET/C# 드라이버를 사용하여 Atlas Search 인덱스를 편집하려면 Update() 또는 UpdateAsync() 메서드를 사용합니다.

다음 샘플 애플리케이션은 기존 인덱스 정의를 업데이트합니다. 다음 값을 지정합니다.

  • Atlas 연결 문자열입니다. 자세한 사항은 드라이버를 통해 연결을 참조하십시오.

  • 검색 인덱스를 만든 데이터베이스 및 컬렉션.

  • 기존 정의를 대체할 새 인덱스 정의입니다. 이 예에서는 정적 매핑을 사용하도록 인덱스를 업데이트합니다. 특정 인덱싱 요구 사항에 맞게 이 정의를 변경할 수 있습니다. 자세한 사항은 Atlas 검색 인덱스 구문 검토를 참조하세요.

  • 업데이트하려는 인덱스의 이름입니다.

Program.cs
using MongoDB.Bson;
using MongoDB.Driver;
// connect to your Atlas deployment
var uri = "<connection-string>";
var client = new MongoClient(uri);
var db = client.GetDatabase("<databaseName>");
var collection = db.GetCollection<BsonDocument>("<collectionName>");
// define your Atlas Search index
var index = new BsonDocument
{
// updated search index definition
{ "mappings", new BsonDocument
{
{ "dynamic", false },
{ "fields", new BsonDocument
{
{ "<field-name>", new BsonDocument
{
{ "type", "<field-type>" }
}
}
}
}
}
}
};
collection.SearchIndexes.Update("<index-name>", index);

샘플 애플리케이션을 실행하려면 csharp-update-index(이)라는 새 .NET 콘솔 프로젝트를 만들고 이전 코드 예시를 Program.cs 파일에 복사합니다. 그 후 다음 명령을 사용하여 프로젝트를 실행합니다.

dotnet run csharp-update-index.csproj

참고

Update() 메서드는 출력을 반환하지 않습니다. Atlas UI를 사용하여 인덱스 상태를 볼 수 있습니다.

API 문서

이 페이지의 메서드에 대한 자세한 내용은 .NET/C# 드라이버의 API 설명서를 참조하세요.

Java 드라이버를 사용하여 컬렉션에서 Atlas Search 인덱스를 편집하려면 검색 인덱스 설정을 수정하는 문서를 작성한 다음 updateSearchIndex() 메서드에 문서를 전달합니다. Java Driver v4.11.0 이상이 있어야 합니다.

1
2
1import com.mongodb.client.MongoClient;
2import com.mongodb.client.MongoClients;
3import com.mongodb.client.MongoCollection;
4import com.mongodb.client.MongoDatabase;
5import org.bson.Document;
6
7public class EditIndex {
8 public static void main(String[] args) {
9 // connect to your Atlas cluster
10 String uri = "<connection-string>";
11
12 try (MongoClient mongoClient = MongoClients.create(uri)) {
13 // set namespace
14 MongoDatabase database = mongoClient.getDatabase("<document-name>");
15 MongoCollection<Document> collection = database.getCollection("<collection-name>");
16 // define field mappings
17 Document index = new Document("analyzer", "<analyzer-name>").append(
18 "mappings", new Document("dynamic", <true|false>)
19 .append("fields", new Document("<field-name>",
20 new Document("type", "<field-type>"))));
21 // run the updateSearchIndex() method
22 collection.updateSearchIndex("<index-name>", index);
23 }
24 }
25}
3
  • <connection-string> - Atlas 연결 문자열입니다. 자세한 내용은 드라이버를 통해 연결을 참조하세요.

    참고

    연결 문자열에 writeConcern 설정을 포함하지 마세요.

  • <database-name> - 컬렉션이 포함된 데이터베이스의 이름입니다.

  • <collection-name> - 인덱스를 검색하려는 컬렉션의 이름입니다.

  • <analyzer-name> - 분석기의 이름.

  • dynamic - 필드를 자동으로 인덱싱할지 여부를 나타내는 플래그입니다.

  • <field-name> - 인덱싱할 필드의 이름입니다.

  • <field-type> - 필드 데이터 유형.

  • <index-name> - 인덱스의 이름입니다.

4
javac EditIndex.java
java EditIndex

updateSearchIndex() 메서드는 비동기적으로 실행됩니다. listSearchIndexes() 메서드를 사용하여 변경 사항이 인덱스에 적용되었는지 확인합니다. Atlas Search 인덱스를 검색하는 방법을 자세히 알아보려면 절차를 참조하세요.

다음도 참조하세요.

노드 드라이버를 통해 Atlas Search 인덱스를 편집하려면 updateSearchIndex 도우미 메서드를 사용합니다.

update-index.js라는 다음 샘플 애플리케이션을 사용하여 기존 인덱스 정의를 업데이트할 수 있습니다. 다음 값을 지정합니다.

  • Atlas 연결 문자열입니다. 자세한 사항은 드라이버를 통해 연결을 참조하십시오.

  • 검색 인덱스를 만든 데이터베이스 및 컬렉션.

  • 기존 정의를 대체할 새 인덱스 정의입니다. 이 예에서는 정적 매핑을 사용하도록 인덱스를 업데이트합니다. 특정 인덱싱 요구 사항에 맞게 이 정의를 변경할 수 있습니다. 자세한 사항은 Atlas 검색 인덱스 구문 검토를 참조하세요.

  • 업데이트하려는 인덱스의 이름입니다.

update-index.js
import { MongoClient } from "mongodb";
// connect to your Atlas deployment
const uri = "<connection-string>";
const client = new MongoClient(uri);
async function run() {
try {
const database = client.db("<databaseName>");
const collection = database.collection("<collectionName>");
// define your Atlas Search index
const index = {
/* updated search index definition */
"mappings": {
"dynamic": false,
"fields": {
"<field-name>": {
"type": "<field-type>"
}
}
}
}
// run the helper method
await collection.updateSearchIndex("<index-name>", index);
} finally {
await client.close();
}
}
run().catch(console.dir);

샘플 애플리케이션을 실행하려면 다음 명령을 사용합니다.

node update-index.js

참고

updateSearchIndex 메서드는 출력을 반환하지 않습니다. Atlas UI를 사용하여 인덱스 상태를 볼 수 있습니다.

Python Driver를 사용하여 Atlas Search 인덱스를 업데이트하려면 컬렉션에서 update_search_index() 메서드를 호출하세요.

1
2

다음 샘플 애플리케이션은 새로운 Atlas Search 인덱스 정의를 지정합니다. 그런 다음, 애플리케이션은 이 정의와 기존 인덱스 이름을 update_search_index() 메서드에 전달하고, 이 메서드는 기존 인덱스를 업데이트하여 새 정의 문서를 반영합니다.

from pymongo.mongo_client import MongoClient
def edit_index():
# Connect to your Atlas deployment
uri = "<connectionString>"
client = MongoClient(uri)
# Access your database and collection
database = client["<databaseName>"]
collection = database["<collectionName>"]
# Specify a new index definition
definition = {
"mappings": {
"dynamic": True
},
}
# Update your search index
collection.update_search_index("<indexName>", definition)
3
4
python edit-index.py

참고

새 인덱스가 빌드되는 동안 노드마다 다양한 속도로 업데이트될 수 있습니다. 이 기간 동안 새 인덱스 정의와 이전 인덱스 정의가 모두 반영된 쿼리 결과가 혼합되어 나타날 수 있습니다. 인덱스 상태 세부 정보 페이지에서 쿼리를 제공하는 인덱스를 볼 수 있습니다.

돌아가기

보기