Todos los productos
Search
Centro de documentos

OpenSearch:Búsqueda de documentos

Última actualización: Sep 04, 2026

La latencia de las consultas aumenta según la cantidad de documentos recuperados: entre más documentos coincidan, mayor será el tiempo de búsqueda. Las siguientes optimizaciones reducen el costo de recuperación y resuelven errores comunes en las consultas. Si los resultados de búsqueda no cumplen con sus expectativas después de aplicar estas recomendaciones, póngase en contacto con el soporte técnico de Alibaba Cloud.

Especifique siempre un índice

Cada consulta debe hacer referencia a un índice definido en su aplicación. Si omite el nombre del índice, el motor utiliza el índice predeterminado. Si no existe un índice predeterminado, la consulta devuelve un error sin resultados.

query='mp3'            # Equivalent to query=default:'mp3'
query=default:'mp3'    # Explicit index reference

Encierre las palabras clave entre comillas simples

El analizador de consultas requiere que las palabras clave estén encerradas entre comillas simples (' '). Sin ellas, la consulta no se puede analizar y no devuelve resultados.

# Error — missing single quotation marks
query=default:mp3

# Correct
query=default:'mp3'

Escape apóstrofos y barras invertidas

Dos caracteres requieren manejo especial dentro de una cadena de palabras clave:

  • Apóstrofo ('): escápelo como \' o elimínelo. Un apóstrofo sin escapar termina la cadena de palabras clave prematuramente.

  • Barra invertida (\): escápela como \\. Una barra invertida al final de una palabra clave actúa como carácter de escape para la ' de cierre, lo cual interrumpe el análisis sintáctico.

# Retrieves documents containing both "Beijing" and "University"
query=default:'Beijing University'

# Error — the apostrophe in "abc's" ends the string prematurely
query=default:'abc's efg'

# Correct — escape the apostrophe
query=default:'abc\'s efg'

# Error — the backslash escapes the closing quote
query=default:'abc\'

Use la cláusula query para filtrar campos indexados

Cuando filtre por un campo, indexe dicho campo y consúltelo mediante la cláusula query en lugar de la cláusula filter. Esto mejora el rendimiento de la consulta.

# Slower — filter clause
query=user_id:'123'&&filter=type_id=1

# Faster — both conditions use the query clause on indexed fields
query=user_id:'123' AND type_id:'1'

Use búsquedas por rango para grandes conjuntos de datos temporales

Cuando una consulta coincide con una gran cantidad de documentos (por ejemplo, 50 millones de registros para user_id=123) y solo un subconjunto pequeño cumple la condición de tiempo (como 1,000 registros), el motor puede agotar el tiempo de espera.

Use range search en su lugar, ya que es más eficiente.

# Slow — may cause timeout when result set is large
query=user_id:'123'&&filter=time>"2016-09-16"

# Fast — range search, more efficient
query=user_id:'123' AND index_timestamp:(1473955200000,)

Reduzca el tamaño de los datos de resultados

Una vez identificados los documentos coincidentes, el motor obtiene y devuelve los datos de sus campos. Devolver grandes volúmenes de datos de campos por documento incrementa el tiempo de transferencia.

Puede reducir este costo de dos formas:

  • Limite el tamaño del conjunto de resultados. La paginación predeterminada es de 20 resultados por página; evite obtener más de los necesarios.

  • Devuelva solo los campos necesarios. Modifique el parámetro fetch_fields (o la configuración de campos de visualización predeterminados) para incluir únicamente los campos que su aplicación usa realmente.