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.