Menu Docs
Página inicial do Docs
/ / /
Driver C
/ /

Índices de pesquisa do Atlas

Nesta página

  • Visão geral
  • Criar um índice de pesquisa
  • Listar índices de pesquisa
  • Atualizar um Índice de Pesquisa
  • Excluir um índice de pesquisa
  • Informações adicionais
  • Documentação da API

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 .

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.

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);

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);

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);

Para saber mais sobre o MongoDB Atlas Search, consulte a documentação dos índices do Atlas Search.

Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API:

Voltar

Multikey Indexes