Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

441
Views
¿Cómo crear un índice para la búsqueda de texto parcial en MongoDB?

Estoy siguiendo las instrucciones del tutorial: https://docs.mongodb.com/manual/core/index-text/

Estos son los datos de muestra:

 db.stores.insert( [ { _id: 1, name: "Java Hut", description: "Coffee and cakes" }, { _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" }, { _id: 3, name: "Coffee Shop", description: "Just coffee" }, { _id: 4, name: "Clothes Clothes Clothes", description: "Discount clothing" }, { _id: 5, name: "Java Shopping", description: "Indonesian goods" } ] )

Caso 1: db.stores.find( { $text: { $search: "java coffee shop" } } ) => ENCONTRADO

Caso 2: db.stores.find( { $text: { $search: "java" } } ) => ENCONTRADO

Caso 3: db.stores.find( { $text: { $search: "coff" } } ) => NO ENCONTRADO

Espero que se ENCUENTRE el caso 3 porque la consulta coincide con una parte de java coffee shop

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El caso 3 no funcionará con el operador $texto y la razón es cómo Mongo crea índices de texto.

Mongo toma valores de campos indexados de texto y crea índices separados para cada palabra única en cadena y no carácter (!).

entonces esto significa que en su caso para 1 objeto:

el nombre del campo tendrá 2 índices:

  • Java
  • cabaña

la descripción del campo tendrá 3 índices:

  • café
  • y
  • tortas

El operador de $texto compara los valores de $búsqueda con estos índices y es por eso que "coff" no funcionará.

Si desea aprovechar las ventajas de los índices, debe usar el operador $text, pero no le brinda toda la flexibilidad, tal como lo desea.

solución :

Simplemente puede usar $regex con la opción de distinción entre mayúsculas y minúsculas (i) y optimizar su consulta con omitir y limitar.

Si desea devolver todos los documentos y la colección es grande, $regex causará un problema de rendimiento

también puede consultar este artículo https://medium.com/coding-in-depth/full-text-search-part-1-how-to-create-mongodb-full-and-partial-text-search-c09c0bae17a3 y tal vez use índices comodín para eso, pero no sé si es una buena práctica o no.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!