Todos los productos
Search
Centro de documentos

Tablestore:Ordenamiento y paginación

Última actualización: Sep 28, 2026

Cuando utiliza un índice de búsqueda para consultar datos, puede usar un método de ordenamiento predefinido o especificar uno. De esta manera, las filas que cumplen las condiciones de la consulta se devuelven según el orden predefinido o especificado. Si la respuesta incluye una gran cantidad de filas, puede localizar la información requerida al configurar los parámetros limit y offset, o bien mediante tokens.

Escenarios

Categoría

Método

Función

Escenario

Ordenamiento

Especifique un método de ordenamiento al crear un índice de búsqueda

Index presorting

De forma predeterminada, los datos de un índice de búsqueda se ordenan según la configuración de preordenamiento definida por el parámetro IndexSort. Esta configuración determina el orden predeterminado en el que se devuelven las filas que cumplen las condiciones de la consulta.

Especifique un método de ordenamiento al consultar datos

ScoreSort

Utilice ScoreSort para ordenar los resultados de la consulta según la puntuación de relevancia de palabras clave basada en BM25. Este método es adecuado para escenarios como la búsqueda de texto completo.

PrimaryKeySort

Utilice PrimaryKeySort para ordenar los resultados de la consulta según el valor de la clave principal. Este método resulta útil cuando necesita ordenar los datos a partir de sus identificadores únicos.

FieldSort

FieldSort permite ordenar los resultados de la consulta según los valores de una o más columnas. Es ideal para organizar datos por propiedades como el volumen de ventas o las vistas de página. Por lo general, se emplea en sectores como el comercio electrónico, las redes sociales y la gestión de recursos multimedia.

GeoDistanceSort

Con GeoDistanceSort, ordene los resultados de la consulta por ubicación geográfica. Este método está diseñado para escenarios donde los datos deben clasificarse según la distancia desde un punto específico. Se usa principalmente en industrias como la cartografía y la logística. Por ejemplo, sirve para ordenar restaurantes cercanos a una ubicación según su distancia respecto a dicho punto.

Paginación

Especifique un método de paginación al consultar datos

Configure the Limit and Offset parameters

Si la respuesta contiene menos de 100,000 filas, utilice este método para saltar a una página específica.

Use a token

De forma predeterminada, el uso de un token solo permite avanzar hacia las páginas siguientes. Sin embargo, dado que un token es válido durante toda la consulta, puede almacenarlo en caché y usar el token anterior para retroceder entre páginas.

Preordenamiento de índices

De forma predeterminada, Tablestore ordena los datos de un índice de búsqueda según un orden predefinido conocido como preordenamiento de índices (IndexSort). Al consultar datos, IndexSort determina el orden predeterminado de los resultados devueltos.

Al crear un índice de búsqueda, puede personalizar IndexSort. Si no especifica esta configuración, el índice se ordenará por clave principal de forma predeterminada.

Importante
  • El preordenamiento de índices solo admite PrimaryKeySort (ordenamiento por clave principal) y FieldSort (ordenamiento por campo).

  • No es posible aplicar el preordenamiento de índices a un índice de búsqueda que contenga campos de tipo anidado (nested).

  • Una vez creado el índice de búsqueda, la función dynamic schema modification le permite modificar la configuración de IndexSort.

Especificar un método de ordenamiento al consultar datos

El ordenamiento solo se habilita para los campos cuyo parámetro EnableSortAndAgg esté establecido en true.

Puede especificar un método de ordenamiento para cada consulta. Las consultas basadas en índices de búsqueda admiten los métodos descritos a continuación. También es posible combinar varios métodos de ordenamiento con distintas prioridades.

ScoreSort

ScoreSort

Ordena los resultados de la consulta por puntuación de relevancia, calculada mediante el algoritmo BM25. Este método es adecuado para escenarios basados en relevancia, como la búsqueda de texto completo.

Importante
  • Si desea ordenar por puntuación de relevancia, especifique ScoreSort de manera explícita. De lo contrario, Tablestore ordenará los resultados según la configuración de IndexSort del índice.

  • Cuando utiliza ScoreSort, los campos de tipo FuzzyKeyword quedan excluidos del ordenamiento y el parámetro weight no surte efecto sobre ellos.

var searchQuery = new SearchQuery();
searchQuery.Sort = new Sort(new List<ISorter>() { new ScoreSort() });

PrimaryKeySort

Utilice PrimaryKeySort para ordenar los resultados de la consulta según el valor de la clave principal.

// Sort the query results based on the values of the primary key in ascending order. 
var searchQuery = new SearchQuery();
searchQuery.Sort = new Sort(new List<ISorter>() { new PrimaryKeySort() });

// Sort the query results based on the values of the primary key in descending order. 
var searchQuery = new SearchQuery();
searchQuery.Sort = new Sort(new List<ISorter>() { new PrimaryKeySort(SortOrder.DESC) });

FieldSort

FieldSort permite ordenar los resultados de la consulta según los valores de una o más columnas específicas.

Ordenar los resultados de la consulta según los valores de una sola columna

Mediante FieldSort, ordene los resultados de la consulta a partir de los valores de una columna específica.

var searchQuery = new SearchQuery();
var fieldSort = new FieldSort("col", SortOrder.ASC);
searchQuery.Sort = new Sort(new List<ISorter>() { fieldSort });

Ordenar los resultados de la consulta según los valores de varias columnas

También es posible ordenar los resultados de la consulta según los valores de dos columnas en órdenes específicos. Esto define la secuencia en la que se devuelven los datos coincidentes.

var searchQuery = new SearchQuery();
var col1Sort = new FieldSort("col", SortOrder.ASC);
var col2Sort = new FieldSort("co2", SortOrder.ASC);
searchQuery.Sort = new Sort(new List<ISorter>() { col1Sort, col2Sort });

GeoDistanceSort

Emplee GeoDistanceSort para ordenar los resultados de la consulta por ubicación geográfica.

var searchQuery = new SearchQuery();
var geoDistanceSort = new GeoDistanceSort("geoCol", new List<string>(){"0","0"});
searchQuery.Sort = new Sort(new List<ISorter>() { geoDistanceSort });

Especificar un método de paginación

Para paginar las filas de la respuesta, configure los parámetros Limit y Offset, o bien utilice tokens.

Paginación basada en los parámetros Limit y Offset

Si el número total de filas en la respuesta es menor que 100,000, configure los parámetros Limit y Offset para paginarlas. La suma de los valores de ambos parámetros no debe superar 100,000. El valor máximo del parámetro Limit es 100.

Para obtener información sobre cómo aumentar el valor máximo del parámetro Limit, consulte How do I increase the value of the limit parameter to 1000 when I call the Search operation of the search index feature to query data?.

Si no configura los parámetros Limit y Offset al utilizar este método, el valor predeterminado de Limit será 10 y el de Offset será 0.

var searchQuery = new SearchQuery();
searchQuery.Query = new MatchAllQuery();
searchQuery.Limit = 100;
searchQuery.Offset = 100;

Paginación basada en tokens

Se recomienda utilizar un token para la paginación profunda, ya que este método no impone límites en la profundidad de la paginación.

Si Tablestore no logra leer todos los datos que cumplen las condiciones de la consulta, devuelve NextToken. Utilice NextToken para continuar con la lectura de los datos subsecuentes.

De forma predeterminada, el uso de un token solo permite avanzar hacia las páginas siguientes. No obstante, dado que un token es válido durante toda la consulta, puede almacenarlo en caché y usar el token anterior para retroceder entre páginas.

Al utilizar un token, el método de ordenamiento coincide con el de la solicitud anterior. Tablestore ordena los datos según el parámetro IndexSort de forma predeterminada o conforme al método que haya especificado. No es posible definir el método de ordenamiento ni configurar el parámetro Offset cuando se emplea un token. Los datos se devuelven secuencialmente, página por página.

Importante

Los índices de búsqueda que contienen campos Nested no son compatibles con

IndexSort

. Si requiere paginación y utiliza un índice de búsqueda con campos Nested para consultar datos, especifique el método de ordenamiento en las condiciones de la consulta para que los datos se devuelvan en el orden indicado. De lo contrario, Tablestore no devolverá

NextToken

cuando solo se obtenga una parte de los datos que cumplen dichas condiciones.

/// <summary>
/// In this example, a token is used to page the rows in the response and Tablestore reads all data and returns the data in a list. 
/// </summary>
/// <param name="otsClient"></param>
public static SearchResponse ReadMoreRowsWithToken(OTSClient otsClient)
{
    var searchQuery = new SearchQuery();
    searchQuery.Query = new MatchAllQuery();

    var request = new SearchRequest(TableName, IndexName, searchQuery);

    var response = otsClient.Search(request);
    var rows = response.Rows;
    while (response.NextToken != null) // If NextToken is null in the response, all data is read. 
    {
        request.SearchQuery.Token = response.NextToken;
        response = otsClient.Search(request);
        rows.AddRange(response.Rows);
    }

    return response;
}

Preguntas frecuentes

Referencias

  • Al consultar datos mediante un índice de búsqueda, puede utilizar los siguientes métodos de consulta: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query y exists query. Según sus necesidades de negocio, estos métodos permiten consultar datos desde múltiples dimensiones.

    Las funciones de ordenamiento y paginación le permiten organizar o dividir en páginas las filas que cumplen las condiciones de la consulta. Para obtener más información, consulte Sorting and paging.

    La función collapse (distinct) reduce el conjunto de resultados con base en una columna específica. Así, los datos del tipo indicado aparecen una sola vez en los resultados de la consulta. Para obtener más información, consulte Collapse (distinct).

  • Si necesita analizar los datos de una tabla, utilice la función de agregación de la operación Search o ejecute instrucciones SQL. Por ejemplo, puede obtener los valores mínimo y máximo, la suma y el número total de filas. Para obtener más información, consulte Aggregation y SQL query.

  • Para obtener todas las filas que cumplen las condiciones de la consulta sin necesidad de ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para aprovechar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.