Todos los productos
Search
Centro de documentos

OpenSearch:Cláusula de ordenamiento

Última actualización: Sep 04, 2026

Una cláusula de ordenamiento controla el orden de los resultados de una consulta según uno o más campos. Si no se incluye esta cláusula, los resultados se ordenan de forma predeterminada en orden descendente por puntuación de relevancia (RANK).

Sintaxis

Una cláusula de ordenamiento sigue este formato:

+field1;-field2
  • + ordena por el campo en orden ascendente.

  • - ordena por el campo en orden descendente.

  • Separe varias reglas de ordenamiento con punto y coma (;).

  • Combine campos con operadores aritméticos (+, -, *, /) para ordenar por un valor calculado. Los campos unidos por un operador deben compartir el mismo tipo de datos.

  • Ordene por el campo RANK para organizar los resultados según la puntuación de relevancia, la cual se calcula mediante una expresión de ordenamiento.

Referencia rápida

Ejemplo

Resultado

+price

Ascendente por price

-price

Descendente por price

-(hits+comments)

Descendente por la suma de hits y comments

+type;-RANK

Ascendente por type; los empates se resuelven por relevancia descendente

+distance(lon,lat,"120.34256","30.56982")

Ascendente por distancia desde las coordenadas indicadas

Ordenamiento multidimensional

Una cláusula de ordenamiento puede contener varias reglas separadas por punto y coma. Los resultados se ordenan primero por la regla inicial; si los valores son iguales, se aplica la siguiente regla, y así sucesivamente.

sort=-field1;-field2;-field3

El rendimiento del ordenamiento multidimensional depende de las características de los campos y no está garantizado. Para mejorar el rendimiento, utilice una expresión de ordenamiento fino que combine señales de varios campos en una sola puntuación numérica:

normalize(field1)*100+normalize(field2)*10+normalize(field3)+first_phase_score*10000

En este caso, first_phase_score es la puntuación calculada por la expresión de ordenamiento preliminar. Este enfoque ofrece un rendimiento de ordenamiento predecible y permite ajustar explícitamente los pesos de los campos. Para más detalles, consulte Fine sort functions.

Limitaciones

  1. La cláusula de ordenamiento es opcional. Si no se especifica, los resultados se ordenan por RANK en orden descendente. Si la cláusula no incluye el campo RANK, las expresiones de ordenamiento no surten efecto.

  2. Los campos en una cláusula de ordenamiento deben ser campos de atributo definidos en el esquema de la aplicación.

  3. Las funciones de funcionalidad que devuelven valores INT o FLOAT pueden usarse como campos de ordenamiento.

  4. Para campos LITERAL: las letras se ordenan alfabéticamente, los números se ordenan dígito por dígito en cada posición y los caracteres chinos se ordenan por valor ASCII.

  5. Los campos ARRAY no son compatibles en la mayoría de los escenarios.

Funciones de funcionalidad compatibles

distance

Devuelve la distancia esférica entre dos puntos. Se usa comúnmente para ordenar resultados por proximidad en escenarios de servicios basados en ubicación (LBS).

Ejemplo: Ordene los resultados de búsqueda de restaurantes por distancia en orden ascendente.

query=default:'Restaurant name'&&sort=+distance(lon,lat,"120.34256","30.56982")

Para consultar la referencia completa de la función, consulte distance.

tag_match

Compara las cláusulas de consulta con los documentos mediante etiquetas y asigna una puntuación a los documentos según los pesos de las etiquetas coincidentes.

Ejemplo:

sort=-tag_match("user_options", options, "mul", "sum", "false", "true", 100)

Para consultar la referencia completa de la función, consulte tag_match.

Ejemplos

Ordenar por campo y luego por relevancia

Busque "Zhejiang University" y ordene los resultados por type en orden ascendente; los empates se resuelven por relevancia de texto en orden descendente.

query=default:'Zhejiang University'&&sort=+type;-RANK

La expresión de ordenamiento fino puede ser text_relevance(field). Para obtener detalles sobre la configuración de políticas de ordenamiento, consulte Configure sort policies.

Ordenar por valor de campo calculado

Busque "Zhejiang University" y ordene los resultados por el total combinado de hits y comments en orden descendente.

query=default:'Zhejiang University'&&sort=-(hits+comments)

Pasos siguientes