Una consulta de términos coincide con las filas donde el valor de un campo es exactamente igual a cualquiera de varias palabras clave especificadas. Equivale al operador IN de SQL y amplía la consulta de término de palabra única para admitir múltiples palabras clave.
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 search indexes.
Parámetros
|
Parámetro |
Descripción |
|
TableName |
El nombre de la tabla de datos. |
|
IndexName |
El nombre del índice de búsqueda. |
|
Query |
El tipo de consulta. Establezca este valor en |
|
FieldName |
El nombre del campo con el que se realizará la coincidencia. |
|
Terms |
Las palabras clave que se compararán con el valor del campo. Se devuelve una fila si su valor coincide exactamente con como mínimo una palabra clave. |
|
Limit |
El número máximo de filas que se devolverán. Establezca este valor en |
|
ColumnsToGet |
Las columnas que se devolverán para cada fila coincidente. Configure esta opción mediante De forma predeterminada,
Establezca |
Ejemplos
A continuación se muestra un ejemplo que consulta las filas donde Col_Keyword coincide exactamente con "SearchIndex" o "Sample":
/// <summary>
/// Search the table for rows in which the value of the Col_Keyword column exactly matches "SearchIndex" or "Sample".
/// </summary>
/// <param name="otsClient"></param>
public static void TermsQuery(OTSClient otsClient)
{
TermsQuery termsQuery = new TermsQuery();
termsQuery.FieldName = "Col_Keyword";
termsQuery.Terms = new List<ColumnValue>
{
new ColumnValue("SearchIndex"),
new ColumnValue("Sample")
};
SearchQuery searchQuery = new SearchQuery();
searchQuery.Query = termsQuery;
SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
// Specify columns to return: by search index, by name, or all columns.
// If not specified, only primary key columns are returned.
searchRequest.ColumnsToGet = new ColumnsToGet
{
// Return all columns in the search index.
ReturnAllFromIndex = true
// Return specific columns by name.
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// Return all columns in the data table.
//ReturnAll = true
};
SearchResponse searchResponse = otsClient.Search(searchRequest);
Console.WriteLine(JsonConvert.SerializeObject(searchResponse));
}
Preguntas frecuentes
Referencias
-
Al utilizar un índice de búsqueda para consultar datos, puede emplear 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. Estos métodos permiten consultar datos desde múltiples dimensiones según sus requisitos empresariales.
Es posible ordenar o paginar las filas que cumplen con las condiciones de consulta mediante las funciones de ordenación y paginación. Para obtener más información, consulte Sorting and paging.
La función de colapso (distinct) permite agrupar el conjunto de resultados según una columna específica. 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 necesita analizar datos en una tabla de datos, utilice la función de agregación de la operación Search o ejecute sentencias 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 con las condiciones de consulta sin necesidad de ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para utilizar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.