Búsqueda

$text y MongoDB Search con índices que ven cada escritura confirmada.

TeselaDB implementa $text y MongoDB Search (antes Atlas Search): $search, $searchMeta, los comandos de índices de búsqueda y sus operadores, analizadores, sinónimos y tipos de campo. No necesitas un proceso aparte: los índices viven en los mismos nodos que los datos.

Crear un índice y buscar

JavaScript
db.articulos.createSearchIndex({
  name: "default",
  definition: { mappings: { dynamic: true } },
});

db.articulos.aggregate([
  { $search: { text: { query: "replicación automática", path: ["titulo", "cuerpo"] } } },
  { $limit: 10 },
  { $project: { titulo: 1, score: { $meta: "searchScore" } } },
]);

Lo que cambia respecto a MongoDB

  • Los índices de búsqueda son consistentes: una búsqueda ve las escrituras confirmadas antes que ella. En MongoDB pueden tardar en aparecer.
  • Las puntuaciones usan las estadísticas de toda la colección, aunque esté repartida en muchos rangos, y salen iguales en todas las réplicas. Coinciden con las de un replica set de MongoDB con los mismos documentos.

Texto clásico

$text con un índice text funciona como en MongoDB, con su puntuación ($meta: "textScore").

Para búsqueda semántica con vectores, mira Búsqueda vectorial.