Índices de pesquisa do Atlas
Nesta página
Visão geral
O Atlas Search permite que você realize pesquisas de texto completo em coleções hospedadas no MongoDB Atlas. Os índices do Atlas Search especificam o comportamento da pesquisa e quais campos indexar.
As seções seguintes fornecem exemplos de código que demonstram como criar, listar, atualizar e excluir índices de Atlas Search .
Criar um índice de pesquisa
Você pode passar o comando createSearchIndexes
para a função mongoc_collection_command_simple()
para criar um ou mais índices do Atlas Search .
Você também pode utilizar esta função para criar índices do Atlas Vector Search . O Atlas Vector Search permite realizar pesquisas semânticas em incorporações vetoriais armazenadas no MongoDB Atlas. Para saber mais sobre esse recurso, consulte a Visão geral do Atlas Vector Search na documentação do Atlas .
O seguinte exemplo de código mostra como criar um índice Atlas Search:
bson_t cmd; bson_error_t error; char *cmd_str = bson_strdup_printf ( BSON_STR ({ "createSearchIndexes" : "%s", "indexes" : [ {"definition" : {"mappings" : {"dynamic" : false}}, "name" : "<index name>"} ] }), "<collection name>"); bson_init_from_json (&cmd, cmd_str, -1, &error); bson_free (cmd_str); if (mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { printf ("Successfully created search index\n"); } else { fprintf (stderr, "Failed to create search index: %s", error.message); } bson_destroy (&cmd);
O seguinte exemplo de código mostra como criar múltiplos índices:
bson_t cmd; bson_error_t error; char *cmd_str = bson_strdup_printf ( BSON_STR ({ "createSearchIndexes" : "%s", "indexes" : [ {"definition" : {"mappings" : {"dynamic" : false}}, "name" : "<first index name>"}, {"definition" : {"mappings" : {"dynamic" : false}}, "name" : "<second index name>"} ] }), "<collection name>"); bson_init_from_json (&cmd, cmd_str, -1, &error); bson_free (cmd_str); if (mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { printf ("Successfully created search indexes\n"); } else { fprintf (stderr, "Failed to create search indexes: %s", error.message); } bson_destroy (&cmd);
Para saber mais sobre a sintaxe usada para definir os índices do Atlas Search, consulte o guia Revisar o índice de pesquisa do Atlas Search na documentação do Atlas.
Listar índices de pesquisa
Você pode passar o estágio de agregação $listSearchIndexes
para a função mongoc_collection_aggregate()
para retornar todos os índices do Atlas Search em uma coleção.
O exemplo de código a seguir mostra como imprimir uma lista dos índices de pesquisa de uma coleção:
bson_t pipeline; const bson_t *doc; bson_error_t error; const char *pipeline_str = BSON_STR ({"pipeline" : [ {"$listSearchIndexes" : {}} ]}); bson_init_from_json (&pipeline, pipeline_str, -1, &error); mongoc_cursor_t *cursor = mongoc_collection_aggregate (collection, MONGOC_QUERY_NONE, &pipeline, NULL, NULL); while (mongoc_cursor_next (cursor, &doc)) { char *str = bson_as_canonical_extended_json (doc, NULL); printf ("%s\n", str); bson_free (str); } bson_destroy (&pipeline); mongoc_cursor_destroy (cursor);
Atualizar um Índice de Pesquisa
Você pode passar o comando updateSearchIndex
para a função mongoc_collection_command_simple()
para atualizar um índice do Atlas Search .
O seguinte código mostra como atualizar um índice de pesquisa:
bson_t cmd; bson_error_t error; char *cmd_str = bson_strdup_printf ( BSON_STR ({ "updateSearchIndex" : "%s", "definition" : {"mappings" : {"dynamic" : true}}, "name" : "<index name>"}), "<collection name>"); bson_init_from_json (&cmd, cmd_str, -1, &error); bson_free (cmd_str); if (mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { printf ("Successfully updated search index\n"); } else { fprintf (stderr, "Failed to create search index: %s", error.message); } bson_destroy (&cmd);
Excluir um índice de pesquisa
Você pode passar o comando dropSearchIndexes
para a função mongoc_collection_command_simple()
para excluir um índice do Atlas Search .
O seguinte código mostra como excluir um índice de pesquisa de uma coleção:
bson_t cmd; bson_error_t error; char *cmd_str = bson_strdup_printf ( BSON_STR ({ "dropSearchIndexes" : "%s", "index" : "<index name>" }), "<collection name>"); bson_init_from_json (&cmd, cmd_str, -1, &error); if (mongoc_collection_command_simple (collection, &cmd, NULL, NULL, &error)) { printf ("Successfully deleted search index\n"); } else { fprintf (stderr, "Failed to delete search index: %s", error.message); } bson_destroy (&cmd);
Informações adicionais
Para saber mais sobre o MongoDB Atlas Search, consulte a documentação dos índices do Atlas Search.
Documentação da API
Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API: