Atlas Search インデックスの削除
必要なアクセス権
次の表は、各ロールがサポートするアクセス モードを示しています。
ロール | アクション | Atlas UI | Atlas API | Atlas Search API | Atlas CLI |
---|---|---|---|---|---|
| Atlas Search アナライザーとインデックスを表示します。 | ✓ | ✓ | ||
| Atlas Search アナライザとインデックスを作成および管理し、 により API キーにロールが割り当てられます。 | ✓ | ✓ | ✓ | ✓ |
| ✓ | ✓ | |||
API キーのアクセス リスト エントリを作成し、API キーのアクセス リストに表示されるクライアントからのリクエストを送信します。 | ✓ | ✓ | |||
Atlas UI または API を使用して Atlas Search インデックスを作成、表示、編集、削除します。 | ✓ | ✓ | ✓ |
Atlas Search インデックスの削除
Atlas Search インデックスは、Atlas UI で、またはmongosh
、Atlas CLI、 API 、または希望言語でサポートされているMongoDB ドライバーを使用してプログラム的に削除できます。
注意
mongosh
コマンドまたはドライバーヘルパーメソッドを使用して、すべての Atlas クラスター階層上の Atlas Search インデックスを削除できます。サポートされているドライバー バージョンのリストについては、「 MongoDBドライバー 」を参照してください。
インデックスを含むデータベースに対して、少なくとも readWriteAnyDatabase
ロールまたは readWrite
アクセス権が必要です。詳しくは、「組み込みロール」または「特定の権限」を参照してください。
➤ [言語の選択]ドロップダウン メニューを使用して、このセクション内の例の言語を設定します。
APIを使用して Atlas Search インデックスを削除するには、次の手順に従います。
DELETE
リクエストを送信します。
削除する Atlas Search インデックスの一意の ID または名前を指定して、 DELETE
リクエストをsearch/indexes/
エンドポイントに送信します。
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --include \ --request DELETE "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/search/indexes/{indexId}"
どちらのエンドポイントの構文とパラメータの詳細についても、「名前を1 つ削除 」および「 ID を使用して 1 つの削除 」を参照してください。
クラウド配置用 Atlas Search インデックスの削除
Atlas CLI を使用してクラスターから検索インデックスを削除するには、次のコマンドを実行します。
atlas clusters search indexes delete <indexId> [options]
コマンド構文とパラメーターについて詳しくは、「Atlasクラスター検索インデックスの削除」の Atlas CLIドキュメントを参照してください。
ローカル配置の Atlas Search インデックスの削除
Atlas CLI を使用して指定したデプロイの指定した検索インデックスを削除するには、次のコマンドを実行します。
atlas deployments search indexes delete <indexId> [options]
コマンド構文とパラメーターの詳細については、Atlas CLI ドキュメントの「atlas deployments search indexes delete」を参照してください。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoClusters
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
GoAtlas Searchクラスターの ページに します。
GoAtlas Searchページには、サイドバー、Data Explorer 、またはクラスターの詳細ページから できます。
サイドバーで、 Services見出しの下のAtlas Searchをクリックします。
[ Select data sourceドロップダウンからクラスターを選択し、[ Go to Atlas Search ] をクリックします。
Atlas Searchページが表示されます。
クラスターの [Browse Collections] ボタンをクリックします。
データベースを展開し、コレクションを選択します。
コレクションのSearch Indexesタブをクリックします。
Atlas Searchページが表示されます。
クラスタの名前をクリックします。
[Atlas Search] タブをクリックします。
Atlas Searchページが表示されます。
mongosh
を通じて Atlas Search インデックスを削除するには、 db.collection.dropSearchIndex()
メソッドを使用します。
このコマンドの構文は、次のとおりです。
db.<collection>.dropSearchIndex("<index-name>")
例
次のコマンドは、 movies
コレクションからdefault
という名前の検索インデックスを削除します。
db.movies.dropSearchIndex("default")
注意
db.collection.dropSearchIndex()
コマンドは出力を返しません。 Atlas UI を使用してインデックスのステータスを表示できます。
C ドライバーを使用して Atlas Search インデックスを削除するには、コレクションと drop コマンドをmongoc_collection_command_simple()
メソッドに渡します。
例
次のコード例を ファイルにコピーします。
次のサンプル アプリケーションでは、 dropSearchIndex
コマンドと既存のインデックス名を指定します。 次に、アプリケーションはコマンドとインデックス情報をBSONに変換し、この情報をmongoc_collection_command_simple()
メソッドに渡して検索インデックスを削除します。
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 index name const char *cmd_str = BSON_STR ({"dropSearchIndex" : "<collectionName>", "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; } // Run the command to drop the search index if (!mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { fprintf(stderr, "Failed to run dropSearchIndex: %s\n", error.message); ok = false; goto cleanup; } printf ("Index dropped!\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; }
次の値を指定して、ファイルを保存します。
Atlas 接続文字列。詳しくは、「ドライバーによる接続」を参照してください。
インデックスを削除するデータベースとコレクション。
削除するインデックスの名前。
C++ ドライバーを使用して Atlas Search インデックスを削除するには、検索インデックス ビューでdrop_one()
メソッドを呼び出します。
例
次のコード例を ファイルにコピーします。
次のサンプル アプリケーションでは、ターゲット コレクションのsearch_indexes()
メソッドを使用して検索インデックス ビューをインスタンス化します。 次に、アプリケーションはビューでdrop_one()
メソッドを呼び出し、インデックスを削除するためのパラメーターとして Atlas Search インデックス名を渡します。
using namespace mongocxx; 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(); // Delete your search index auto name = "<indexName>"; siv.drop_one(name); } catch (const std::exception& e) { std::cout<< "Exception: " << e.what() << std::endl; } return 0; }
次の値を指定して、ファイルを保存します。
Atlas 接続文字列。詳しくは、「ドライバーによる接続」を参照してください。
インデックスを取得するデータベースとコレクション。
削除するインデックスの名前。
.NET/C# ドライバー を使用して Atlas Search インデックスを削除するには、 メソッドまたはDropOne()
DropOneAsync()
メソッドを使用します。
例
次のサンプル アプリケーションは、コレクションからインデックスを削除します。 次の値を指定します。
Atlas 接続文字列。詳しくは、「ドライバーによる接続」を参照してください。
削除する検索インデックスを含むデータベースとコレクション。
削除する検索インデックスの名前。
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>"); // drop your Atlas Search index collection.SearchIndexes.DropOne("<index name>");
サンプル アプリケーションを実行するには、csharp-delete-index
という名前の新しい .NET コンソール プロジェクトを作成し、前のサンプル コードを Program.cs
ファイルにコピーします。次に、以下のコマンドを使ってプロジェクトを実行します。
dotnet run csharp-delete-index.csproj
注意
DropOne()
メソッドは出力を返しません。 Atlas UI を使用してインデックスのステータスを表示できます。
Java ドライバーを使用してコレクション上の Atlas Search インデックスを削除するには、 dropSearchIndex()
メソッドを使用します。 Java ドライバーv 4.11.0以上が必要です。
次のコード例を ファイルにコピーします。
次のサンプル アプリケーションは、指定されたコレクション上の指定された Atlas Search インデックスを削除します。
1 import com.mongodb.client.MongoClient; 2 import com.mongodb.client.MongoClients; 3 import com.mongodb.client.MongoCollection; 4 import com.mongodb.client.MongoDatabase; 5 import org.bson.Document; 6 7 public class DeleteIndex { 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("<database-name>"); 15 MongoCollection<Document> collection = database.getCollection("<collection>"); 16 // delete the index 17 collection.dropSearchIndex("<index-name>"); 18 } 19 } 20 }
以下の値を置き換えて、ファイルを保存します。
<connection-string>
- Atlas接続文字列。 詳しくは、「ドライバーによる接続 」を参照してください。注意
接続文字列には、 writeConcern設定を含めないでください。
<database-name>
- コレクションを含むデータベースの名前。<collection-name>
- インデックスを検索するコレクションの名前。<index-name>
- 削除するインデックスの名前。
Node Driverを通じて Atlas Search インデックスを削除するには、 dropSearchIndex
ヘルパー メソッドを使用します。
例
drop-index.js
という名前の次のサンプル アプリケーションを使用して、コレクションのインデックスを削除できます。 次の値を指定します。
Atlas 接続文字列。詳しくは、「ドライバーによる接続」を参照してください。
検索インデックスを作成したデータベースとコレクション。
削除するインデックスの名前。
// 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>"); // run the helper method await collection.dropSearchIndex("<index-name>"); } finally { await client.close(); } } run().catch(console.dir);
サンプル アプリケーションを実行するには、次のコマンドを使用します。
node drop-index.js
注意
dropSearchIndex
メソッドは出力を返しません。 Atlas UI を使用してインデックスのステータスを表示できます。
Python ドライバーを使用して Atlas Search インデックスを削除するには、コレクションでdrop_search_index()
メソッドを呼び出します。
例
次のコード例を ファイルにコピーします。
次のサンプル アプリケーションでは、Atlas Search インデックス名をdrop_search_index()
メソッドに渡してインデックスを削除します。
from pymongo.mongo_client import MongoClient def delete_index(): # Connect to your Atlas deployment uri = "<connectionString>" client = MongoClient(uri) # Access your database and collection database = client["<databaseName>"] collection = database["<collectionName>"] # Delete your search index collection.drop_search_index("<indexName>")
次の値を指定して、ファイルを保存します。
Atlas 接続文字列。詳しくは、「ドライバーによる接続」を参照してください。
インデックスを削除するデータベースとコレクション。
削除するインデックスの名前。