La Query_String usa un analizador con sintaxis estricta. Por lo tanto, devuelve un error si el término de consulta proporcionado contiene sintaxis incorrecta. Esto es diferente de la cadena de consulta simple.
Veamos cómo podemos usar la Query_String en Elasticsearch.
Para comprender cómo usar la consulta de consulta_string, veremos algunos ejemplos.
ELASTICSEARCHE DESCUENTOS DE Uso de Query_String
En este tutorial, utilizaremos el índice global de kibana_sample_data_flights.
Ejemplo 1
Supongamos que queremos obtener los documentos en los que el nombre de DestCityNeN es Denver? Podemos crear una consulta simple como:
Get /kibana_sample_data_flights /_search?Q = DestCityName: Denver
El ejemplo es una consulta simple que busca el campo DestCityName donde el valor es Denver.
Aquí hay una ilustración del ejemplo de registros resultantes:
También podemos implementar la consulta anterior utilizando el parámetro Query_String, como se muestra a continuación:
Get /kibana_sample_data_flights /_search
"consulta":
"Query_string":
"Default_field": "DestCityName",
"Consulta": "Denver"
El ejemplo anterior realiza una funcionalidad similar a la de la línea única que se muestra anteriormente. Sin embargo, el anterior es más legible y fácil de expandir y aplicar filtros.
Ejemplo 2
También podemos usar operadores booleanos como donde DestCityName es Denver o Sydney.
Para hacer esto, podemos realizar una consulta como:
Get /kibana_sample_data_flights /_search
"consulta":
"Query_string":
"Default_field": "DestCityName",
"Consulta": "(Sydney) o (Denver)"
En el ejemplo anterior, el nombre de DestcityS puede ser Denver o Sydney.
Salida de ejemplo:
Ejemplo 3
Supongamos que desea obtener los documentos en los que el tiempo de vuelo es superior a las 10 horas, pero menos de 15 horas.
En tal ejemplo, podemos usar booleano y como se muestra:
Get /kibana_sample_data_flights /_search
"consulta":
"Query_string":
"Default_field": "FlighttimeHour",
"consulta": "(> = 10) y ((<=15)"
Los documentos resultantes incluyen:
Ejemplo 4
Supongamos que queremos buscar múltiples campos? Podemos pasar los campos de destino utilizando los campos en una matriz como:
Get /kibana_sample_data_flights /_search
"consulta":
"Query_string":
"Fields": ["DestCityName", "Destweather"],
"Consulta": "Denver y Rain"
En el ejemplo anterior, buscamos documentos en los que el nombre DestcityName es Denver y Destweather es Rain.
Podemos obtener resultados de ejemplo como:
Clausura
Esta guía le enseñó a usar la consulta de consulta de Elasticsearch para obtener documentos que coincidan con una cadena de consulta específica.