Todos los productos
Search
Centro de documentos

Tablestore:Prefix query

Última actualización: Sep 29, 2026

Una consulta por prefijo (PrefixQuery) busca las filas de un índice de búsqueda donde el valor de un campo comienza con una cadena específica.

Descripción general

Una PrefixQuery coincide con los valores de columna que comienzan con un prefijo determinado. El comportamiento de la consulta depende del tipo de datos de la columna:

  • Keyword: tipo de datos de cadena básico. A medida que aumenta el volumen de datos, el rendimiento de la consulta disminuye. Este tipo solo es adecuado para conjuntos de datos pequeños.

  • FuzzyKeyword: tipo de datos optimizado para búsquedas difusas, como las consultas por prefijo. El rendimiento de la consulta se mantiene estable sin importar el volumen de datos. Se recomienda este tipo para la mayoría de los escenarios de consulta por prefijo.

  • Text: los valores de la columna se dividen en tokens antes de indexarse. Una fila coincide si al menos uno de los tokens resultantes comienza con el prefijo especificado. Debido a la incertidumbre de la tokenización, los resultados de la consulta pueden ser impredecibles. Este tipo de datos se admite únicamente por motivos de compatibilidad y debe usarse con precaución.

Cómo elegir un tipo de datos

A continuación se muestra una tabla que resume la idoneidad de cada tipo de datos para las consultas por prefijo.

Tipo

Rendimiento

Recomendación

Keyword

Disminuye conforme aumenta el volumen de datos

Solo para conjuntos de datos pequeños

FuzzyKeyword

Estable sin importar el volumen de datos

Recomendado para la mayoría de los escenarios

Text

Resultados impredecibles debido a la tokenización

No recomendado

Ejemplos de coincidencia por prefijo

Suponga que una columna contiene los siguientes valores: hangzhou, beijing, shanghai y harbin.

  • El prefijo hang coincide con hangzhou, pero no con beijing, shanghai ni harbin.

  • El prefijo ha coincide tanto con hangzhou como con harbin.

API

Puede ejecutar una consulta por prefijo mediante la API Search o ParallelScan. El tipo de consulta es PrefixQuery.

Parámetros

Parámetro

Descripción

query

Tipo de consulta. Establézcalo en PrefixQuery.

fieldName

Nombre de la columna de destino.

prefix

Cadena de prefijo que se compara con los valores de la columna.

En las columnas de tipo Text, los valores se dividen en tokens antes de la comparación. Una fila coincide si al menos un token comienza con el prefijo especificado.

getTotalCount

Indica si se devuelve el número total de filas coincidentes. El valor predeterminado es false.

Establecer este parámetro en true aumenta la latencia de la consulta.

weight

El peso de la consulta debe ser un número de punto flotante positivo. En los escenarios de búsqueda de texto completo, este parámetro ajusta la contribución de la columna a la puntuación de relevancia BM25. Un valor más alto incrementa la influencia de la columna en la clasificación.

Este parámetro no afecta el conjunto de resultados devuelto, solo la puntuación BM25 de cada fila en los resultados.

tableName

Nombre de la tabla de datos.

indexName

Nombre del índice de búsqueda.

columnsToGet

Especifica las columnas que se devuelven para cada fila coincidente. Configure esto mediante los parámetros returnAll y columns.

De forma predeterminada, returnAll es false. Si no se establece columns, solo se devuelven las columnas de clave primaria. Si se establece columns, solo se devuelven las columnas especificadas.

Establezca returnAll en true para devolver todas las columnas.

Uso

Puede ejecutar consultas por prefijo desde la consola de Tablestore, la herramienta de línea de comandos o un SDK. Antes de empezar, complete los siguientes requisitos previos.

Importante

Actualmente, PrefixQuery en columnas FuzzyKeyword solo se admite mediante el SDK de Tablestore. La consola y la herramienta de línea de comandos solo admiten columnas Keyword.

Usar la consola

  1. Vaya a la pestaña Index Management.

    1. Inicie sesión en la consola de Table Store.

    2. En la barra de navegación superior, seleccione un resource group y una región.

    3. En la página Overview, haga clic en el nombre de la instancia o en Instance Management dentro de la columna Actions.

    4. En la pestaña Instance Details y dentro de la pestaña Data Table List, haga clic en el nombre de la tabla de datos o en Index Management en la columna Actions.

  2. En la pestaña Index Management, busque el Search Index de destino y haga clic en Search dentro de la columna Actions.

  3. En el cuadro de diálogo Search, configure las condiciones de la consulta.

    1. De forma predeterminada, se devuelven todas las columnas. Para devolver columnas específicas, desactive Retrieve All Columns e introduzca los nombres de las columnas separados por comas.

      Nota

      De forma predeterminada, Table Store devuelve las columnas de clave primaria de la tabla de datos.

    2. Seleccione un operador lógico: And, Or o Not.

      Si selecciona And, la consulta devuelve los datos que cumplen todas las condiciones especificadas. Si selecciona Or, la consulta devuelve los datos que cumplen al menos una de las condiciones especificadas. Si selecciona Not, la consulta devuelve los datos que no cumplen las condiciones especificadas.

    3. Seleccione un campo de índice y haga clic en Add.

    4. Establezca el tipo de consulta en Prefix query (PrefixQuery) e introduzca el valor del prefijo.

    5. La ordenación está deshabilitada de forma predeterminada. Para ordenar los resultados por un campo específico, active Enable Sorting, agregue el campo de ordenación y configure el criterio de orden.

    6. La agregación está deshabilitada de forma predeterminada. Para aplicar una agregación estadística sobre un campo específico, active Enable Aggregation, agregue el campo para la agregación y configure los ajustes correspondientes.

  4. Haga clic en OK.

    Los resultados de la consulta se muestran en la pestaña Index Management.

Usar la herramienta de línea de comandos

Ejecute el comando search para consultar datos mediante un índice de búsqueda. Para obtener más información, consulte Search index.

Importante

La herramienta de línea de comandos solo admite consultas por prefijo en columnas Keyword, no en columnas FuzzyKeyword.

  1. Ejecute el comando search para consultar datos con el índice de búsqueda search_index y devolver todas las columnas indexadas.

    search -n search_index --return_all_indexed
  2. Introduzca las condiciones de la consulta cuando el sistema lo solicite. El siguiente código es un ejemplo:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "PrefixQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Prefix": "hangzhou"
            }
        }
    }

Usar un SDK

Puede ejecutar una consulta por prefijo mediante Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK o PHP SDK. El siguiente ejemplo utiliza el SDK de Java.

Nota

La instrucción de consulta es idéntica para los tipos Keyword y FuzzyKeyword. La única diferencia es el tipo de datos de la columna consultada.

El siguiente ejemplo consulta las filas cuyo campo category es de tipo FuzzyKeyword y comienza con hang. La consulta devuelve un máximo de 10 filas y el número total de filas coincidentes.

String tableName = "example_table";
String indexName = "example_index";

PrefixQuery prefixQuery = new PrefixQuery();
prefixQuery.setFieldName("category");
prefixQuery.setPrefix("hang");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(prefixQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());

Facturación

Consultar datos mediante un Search Index consume capacidad de procesamiento de lectura. Para obtener más información, consulte Search Index metering and billing.

Preguntas frecuentes

Documentos relacionados