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

wildcard Operador

wildcard

El operador wildcard permite realizar queries que utilizan caracteres especiales en la string de búsqueda que pueden coincidir con cualquier carácter.

Carácter
Descripción

?

Coincide con cualquier carácter único.

*

Coincide con 0 o más caracteres.

\

Carácter de escape.

wildcard es un operador a nivel de término, lo que significa que el campo query no se analiza. Los operadores a nivel de término funcionan bien con el Analizador de palabras clave, porque el campo query se trata como un solo término, incluidos los caracteres especiales. Para obtener un ejemplo de consulta en un campo query analizado, consulte ejemplo de campo analizado.

wildcard tiene la siguiente sintaxis:

{
$search: {
"index": <index name>, // optional, defaults to "default"
"wildcard": {
"query": "<search-string>",
"path": "<field-to-search>",
"allowAnalyzedField": <boolean>,
"score": <options>
}
}
}

wildcard utiliza los siguientes términos para construir una query:

Campo
Tipo
Descripción
Necesidad
predeterminado

query

string o arreglo de strings

String o strings de búsqueda.

path

string o arreglo de strings

Campo o campos indexados para buscar. También puedes especificar una ruta comodín para buscar.

allowAnalyzedField

booleano

Set to true if you run your query against a field indexed with a tokenizing analyzer. This avoids the field's analyzer from splitting the indexed value into many terms. Fields indexed with the Keyword Analyzer don't require this option.

no

false

score

Objeto

Modifique la puntuación asignada a los resultados de los términos de búsqueda coincidentes. Las opciones son:

  • boostMultiplica la puntuación resultante por el número dado.

  • constant: reemplazar la puntuación del resultado por el número dado.

  • function: reemplazar el puntaje de resultados usando la expresión dada.

Para obtener información sobre cómo usar score en tu query, consulta Calificación de los Documentos en los Resultados.

no

wildcard is a term-level operator, meaning that the query field isn't analyzed. Use the wildcard operator on fields indexed with tokenizing analyzers by setting allowAnalyzedField to true. Fields indexed with the Keyword Analyzer already treat the field value as a single term, so allowAnalyzedField: true isn't required.

If you use wildcard with allowAnalyzedField: true, MongoDB Search applies character filters and token filters based on the specified analyzer or custom analyzer for the field. MongoDB Search skips the tokenization and the output is always a single token.

Los siguientes ejemplos muestran cómo se comporta el operador wildcard cuando se realiza una búsqueda en campos analizados:

Ejemplo

Supón que un campo foo bar baz está indexado con el analizador estándar. MongoDB Search analiza e indexa el campo como foo, bar y baz. Buscar foo bar* en este campo no arroja resultados, porque el operador wildcard trata foo bar* como un único término de búsqueda con un wildcard al final. En otras palabras, MongoDB Search busca en el campo cualquier término que comience con foo bar, pero no encuentra nada porque no existe ningún término.

Ejemplo

Buscar *Star Trek* en un campo indexado con el analizador de palabras clave encuentra todos los documentos en los que el campo contiene la string Star Trek en cualquier contexto. Buscar *Star Trek* en un campo indexado con el analizador estándar no arroja resultados porque hay un espacio entre Star y Trek, y el índice no contiene espacios.

Cuando uses el carácter de escape en mongosh o con un driver, debes utilizar una barra invertida double antes del carácter de escape.

Ejemplo

Para crear una expresión comodín que busque cualquier string que contenga un asterisco literal en una canalización de agregación, utilice la siguiente expresión:

"*\\**"

El primer y último asteriscos actúan como comodines que coinciden con cualquier carácter, y el \\* coincide con un asterisco literal.

Nota

Utiliza la siguiente expresión para escapar una barra invertida literal:

"*\\\*"

The following examples use the movies collection in the sample_mflix database with a custom index definition that uses the keyword analyzer. If you have the sample dataset on your cluster, you can create a MongoDB Search index on the movies collection and run the example queries on your cluster.

La siguiente definición de índice indexa el campo title en la colección movies con el Analizador de palabras clave:

1{
2 "mappings": {
3 "fields": {
4 "title": {
5 "analyzer": "lucene.keyword",
6 "type": "string"
7 }
8 }
9 }
10}

The following example searches all title fields for movie titles that begin with Green D, followed by any number of other characters.

The following example searches all title fields for movie titles that begin with the string Wom?n (where ? may be any single character), followed by a space and then any number of additional characters.

The following example searches using the escape character for documents in which the title field ends with a question mark.

El carácter * en el campo query coincide con cualquier carácter, y la string \\? coincide con un signo de interrogación literal.

Volver

Búsqueda vectorial

En esta página