Al realizar una consulta con comodines, puede utilizar los caracteres comodín asterisco () y signo de interrogación (?) en la consulta para buscar datos. El asterisco () coincide con una cadena de cualquier longitud al inicio, antes o después de un término de búsqueda. El signo de interrogación (?) coincide con un solo carácter en una posición específica. La cadena puede comenzar con un asterisco () o un signo de interrogación (?). Por ejemplo, si busca la cadena "tablee", se puede obtener una coincidencia con "tablestore".
Si el patrón de consulta es *word* (equivalente a WHERE field_a LIKE '%word%' en SQL), puede utilizar la función de consultas con comodines basadas en tokens para mejorar el rendimiento. El rendimiento no se degrada a medida que aumenta el tamaño de los datos.
Para realizar una búsqueda NOT LIKE, utilice WildcardQuery con el parámetro mustNotQueries de BoolQuery.
Requisitos previos
Se inicializó una instancia de OTSClient. Para obtener más información, consulte Initialize an OTSClient instance.
Se creó una tabla de datos y se escribieron datos en ella. Para obtener más información, consulte Create data tables y Write data.
Se creó un índice de búsqueda para la tabla de datos. Para obtener más información, consulte Create a search index.
Parámetros
|
Parámetro |
Descripción |
|
tableName |
El nombre de la tabla de datos. |
|
indexName |
El nombre del índice de búsqueda. |
|
offset |
La posición desde la cual comienza la consulta actual. |
|
limit |
El número máximo de filas que desea que devuelva la consulta actual. |
|
queryType |
El tipo de consulta. Establezca este parámetro en TableStore.QueryType.WILDCARD_QUERY. |
|
fieldName |
El nombre de la columna que desea consultar. |
|
value |
La cadena que contiene caracteres comodín. La cadena puede tener hasta 32 caracteres de longitud. |
|
getTotalCount |
Especifica si se debe devolver el número total de filas que coinciden con las condiciones de la consulta. De forma predeterminada, el valor de este parámetro es false, lo que indica que no se devuelve el número total de filas que cumplen las condiciones de la consulta. Si establece el parámetro getTotalCount en true, el rendimiento de la consulta se ve afectado. |
|
columnToGet |
Especifica si se deben devolver todas las columnas de cada fila que cumpla las condiciones de la consulta. Puede configurar returnType y returnNames para este parámetro.
|
Ejemplos
El siguiente código de ejemplo busca filas en las que el valor de Col_Keyword coincide con la cadena "table*e".
/**
* Search the table for rows in which the value of Col_Keyword matches "table*e".
*/
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // To query only the number of rows that meet the query conditions without returning specific data, you can set limit to 0. This way, Tablestore returns the number of rows that meet the query conditions without specific data from the table.
query: { // Set the query type to TableStore.QueryType.WILDCARD_QUERY.
queryType: TableStore.QueryType.WILDCARD_QUERY,
query: {
fieldName: "Col_Keyword",
value: "table*e" // Specify a string that contains one or more wildcard characters in a wildcard query.
}
},
getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. The default value of this parameter is false, which indicates that the total number of rows that meet the query conditions is not returned.
},
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specified columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns.
returnType: TableStore.ColumnReturnType.RETURN_ALL
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
Preguntas frecuentes
Referencias
-
Los índices de búsqueda admiten los siguientes tipos 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, vector query y exists query. Puede seleccionar un tipo de consulta para buscar datos según sus requisitos empresariales.
Si desea ordenar o paginar las filas que cumplen las condiciones de la consulta, puede utilizar la función de ordenación y paginación. Para obtener más información, consulte Sorting and paging.
Si desea contraer el conjunto de resultados en función de una columna específica, puede utilizar la función de contracción (distinct). De este modo, los datos del tipo especificado aparecen solo una vez en los resultados de la consulta. Para obtener más información, consulte Collapse (distinct).
Si desea analizar datos en una tabla de datos, como obtener los valores extremos, la suma y el número total de filas, puede realizar operaciones de agregación o ejecutar sentencias SQL. Para obtener más información, consulte Aggregation y SQL query.
Si desea obtener rápidamente todas las filas que cumplen las condiciones de la consulta sin necesidad de ordenarlas, puede llamar a las operaciones ParallelScan y ComputeSplits para utilizar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.