Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Especificar el idioma del índice de texto en implementaciones autogestionadas

Nota

MongoDB Search ofrece capacidades avanzadas de búsqueda de texto completo, que incluyen analizadores personalizados con filtros de token. Recomendamos usar los índices de búsqueda de MongoDB en lugar de índices de texto.

El lenguaje del índice de texto determina las reglas que se utilizan para analizar las palabras raíz e ignorar las palabras vacías cuando se ejecutan consultas con el $text operador.

Por defecto, si un índice de texto no tiene un lenguaje por defecto, el índice utiliza el campo de documento language para determinar el lenguaje que utiliza. Como resultado, los índices de texto no se limitan a un solo lenguaje porque el valor del campo language puede cambiar entre documentos.

Puede cambiar el campo que el índice utiliza para determinar su lenguaje. Esto es útil si los nombres de tus campos no están en inglés y tus documentos no tienen un campo llamado language.

Para especificar el idioma del índice de texto en un campo distinto a language, incluya la opción language_override cuando cree el índice:

db.<collection>.createIndex(
{ <field> : "text" },
{ language_override: "<field>" }
)

El índice de textos utiliza el campo especificado en la opción language_override para determinar el lenguaje que se utilizará para el documento correspondiente.

Para los documentos que no contienen el campo especificado en language_override, el índice utiliza el inglés como su lenguaje.

Crear la colección quotes:

db.quotes.insertMany(
[
{
_id: 1,
idioma: "portuguese",
quote: "A sorte protege os audazes"
},
{
_id: 2,
idioma: "spanish",
quote: "Nada hay más surrealista que la realidad."
},
{
_id: 3,
idioma: "english",
quote: "is this a dagger which I see before me"
}
]
)

El lenguaje para cada cita se especifica en el campo idioma.

Crea un índice de texto en el campo quote. Especificar la opción language_override para que el índice de texto utilice el campo idioma para el lenguaje:

db.quotes.createIndex(
{ quote : "text" },
{ language_override: "idioma" }
)

El índice admite las $text queries en el quote campo y utiliza reglas lingüísticas basadas en el lenguaje especificado en el idioma campo. Cada documento especifica un valor diferente en el campo idioma, lo que significa que cada documento se busca con diferentes reglas de lenguaje.

Considere los siguientes ejemplos:

La siguiente consulta busca la cadena audazes:

db.quotes.find(
{
$text: { $search: "audazes" }
}
)

Salida:

[
{ _id: 1, idioma: 'portuguese', quote: 'A sorte protege os audazes' }
]

La query anterior utiliza el portugués como el idioma para cumplir la query.

La siguiente consulta busca la cadena hay:

db.quotes.find(
{
$text: { $search: "hay" }
}
)

La consulta anterior no devuelve resultados, aunque la string hay aparezca en el campo quote del documento _id: 2.

El documento _id: 2 especifica el lenguaje español. hay se considera una palabra vacía en español y, por lo tanto, no se incluye en el índice de texto.

Volver

Crea un índice de texto para una colección que contiene varios idiomas

En esta página