La consulta de existencia también se conoce como consulta NULL o consulta de valor NULL. Esta consulta se utiliza en datos dispersos para determinar si existe una columna de una fila. Por ejemplo, puede consultar las filas en las que el valor de la columna address no está vacío.
Si desea ejecutar una consulta de existencia en una columna Nested, utilice una consulta anidada (nested query).
Para comprobar si una columna contiene valores vacíos, debe usar ExistsQuery junto con mustNotQueries de BoolQuery.
-
El sistema considera que una columna no existe cuando se cumple alguna de las siguientes condiciones. En este ejemplo se utiliza la columna city.
El tipo de la columna city en el índice de búsqueda es un tipo básico, como keyword. Si una fila de la tabla de datos no incluye la columna city, el índice de búsqueda determina que dicha columna no existe.
El tipo de la columna city en el índice de búsqueda es un tipo básico, como keyword. Si en una fila de la tabla de datos el valor de la columna city es un arreglo vacío ("city" = "[]"), el índice de búsqueda determina que la columna city no existe.
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 parámetro en |
|
GetTotalCount |
Indica si se devuelve el número total de filas que coinciden con las condiciones de la consulta. Valor predeterminado: |
|
FieldName |
El nombre del campo que se va a consultar. |
|
ColumnsToGet |
Indica si se devuelven todas las columnas de cada fila coincidente. Valores compatibles: De forma predeterminada,
Establezca |
Ejemplos
A continuación se muestra un ejemplo que consulta las filas donde la columna pk0 no está vacía.
/// <summary>
/// Perform an exists query to query the rows in which the value of the pk0 column is not empty.
/// </summary>
/// <param name="otsClient"></param>
public static void ExistsQuery(OTSClient otsClient)
{
ExistsQuery existsQuery = new ExistsQuery
{
FieldName = "pk0"
};
SearchQuery searchQuery = new SearchQuery
{
Query = existsQuery,
GetTotalCount = false
};
SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
SearchResponse searchResponse = otsClient.Search(searchRequest);
Console.WriteLine(JsonConvert.SerializeObject(searchResponse));
}
Preguntas frecuentes
Referencias
-
Cuando utiliza 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. Según sus necesidades de negocio, combine distintos métodos para consultar datos desde múltiples dimensiones.
Mediante las funciones de ordenación y paginación, ordene o pagine las filas que cumplen con las condiciones de la consulta. Para obtener más información, consulte Sorting and paging.
Utilice la función collapse (distinct) para agrupar el conjunto de resultados según una columna específica. De esta manera, 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, obtenga 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.
Cuando requiera 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.