English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En Elasticsearch, la búsqueda se realiza utilizando consultas basadas en JSON. Las consultas consisten en dos subconjuntos-
Conjuntos de subconsultas de hoja—Estas subconsultas son coincidencias, términos o rangos que buscan valores específicos en un campo específico.
Conjuntos de consultas compuestas—Estas consultas son combinaciones de subconjuntos de consulta de hoja y consultas compuestas, utilizadas para extraer la información necesaria.
Elasticsearch admite una gran cantidad de consultas. Las consultas comienzan con una palabra clave de consulta y luego incluyen condiciones y filtros en la forma de un objeto JSON. A continuación, se describe diferentes tipos de consultas.
Esto es la consulta más básica; devuelve todo el contenido, con una puntuación de cada objeto1.0。
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí./schools { "query":{ "match_all":{} } }
Al ejecutar el código anterior, obtenemos los siguientes resultados-
{ "took": 7, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 2, "relation": "eq" } "max_score": 1.0, "hits": [ { "_index": "schools", "_type": "school", "_id": "5", "_score": 1.0, "_source": { "name": "Central School", "description": "CBSE Affiliation", "street": "Nagan", "city": "paprola", "state": "HP", "zip": "176115", "location": [ 31.8955385, 76.8380405 "fully computerized" "fees" : 22"fees": 00, "Senior Secondary", "beautiful campus" "fully computerized" ],3.3"rating": "" } } { "_index": "schools", "_type": "school", "_id": "4", "_score": 1.0, "_source": { "name": "City Best School", "description": "ICSE", "street": "West End", "city": "Meerut", "state": "UP", "zip": "250002", "location": [ 28.9926174, 77.692485 "fully computerized" "fees" : 35"fees": 00, "tags": [ "fully computerized" ],4.5"rating": "" } } } } }
Estas consultas se utilizan para buscar en el texto completo, como capítulos o artículos de noticias. La consulta depende del analizador asociado con el índice o documento específico. En esta sección, discutiremos diferentes tipos de consultas de texto completo.
Esta consulta coincidirá el texto o la frase con los valores de uno o más campos.
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí.*/schools { "query":{ "match": { "rating":"4.5"rating": "" } } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "took": 44, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 1, "relation": "eq" } "max_score": 0.47000363, "hits": [ { "_index": "schools", "_type": "school", "_id": "4", "_score": 0.47000363, "_source": { "name": "City Best School", "description": "ICSE", "street": "West End", "city": "Meerut", "state": "UP", "zip": "250002", "location": [ 28.9926174, 77.692485 "fully computerized" "fees" : 35"fees": 00, "tags": [ "fully computerized" ],4.5"rating": "" } } } } }
Esta consulta coincidirá con el texto o la frase en uno o más campos.
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí.*/schools { "query":{ "multi_match": { "query": "paprola" "fields": [ "city", "state" ] } } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "took": 12, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 1, "relation": "eq" } "max_score": 0.9808292, "hits": [ { "_index": "schools", "_type": "school", "_id": "5", "_score": 0.9808292, "_source": { "name": "Central School", "description": "CBSE Affiliation", "street": "Nagan", "city": "paprola", "state": "HP", "zip": "176115", "location": [ 31.8955385, 76.8380405 "fully computerized" "fees" : 22"fees": 00, "Senior Secondary", "beautiful campus" "fully computerized" ],3.3"rating": "" } } } } }
Esta consulta utiliza el analizador de consultas y la clave query_string.
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí.*/schools { "query":{ "query_string":{ "query":"beautiful" } } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "took": 60, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 1, "relation": "eq" } ………………………………….
Estas consultas se utilizan principalmente para manejar datos estructurados, como números, fechas y enumeraciones.
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí.*/schools { "query":{ "term":{"zip":"176115"} } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
…………………………….. "hits": [ { "_index": "schools", "_type": "school", "_id": "5", "_score": 0.9808292, "_source": { "name": "Central School", "description": "CBSE Affiliation", "street": "Nagan", "city": "paprola", "state": "HP", "zip": "176115", "location": [ 31.8955385, 76.8380405 "fully computerized" } } } …………………………………………..
Esta consulta se utiliza para encontrar objetos con valores en un rango determinado. Para esto, necesitamos usar operadores, como-
gte −más o igual que
gt −más que
lte −menos o igual que
lt −menos que
Por ejemplo, observe el siguiente código-
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí.*/schools { "query":{ "range":{ "rating":{ "gte":3.5 } } } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "took": 24, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 1, "relation": "eq" } "max_score": 1.0, "hits": [ { "_index": "schools", "_type": "school", "_id": "4", "_score": 1.0, "_source": { "name": "City Best School", "description": "ICSE", "street": "West End", "city": "Meerut", "state": "UP", "zip": "250002", "location": [ 28.9926174, 77.692485 "fully computerized" "fees" : 35"fees": 00, "tags": [ "fully computerized" ],4.5"rating": "" } } } } }
""-
También existen otros tipos de consultas a nivel de términos, como Consultas de existencia
−Si el valor de algún campo no está vacío. Consultas de ausencia
−Este es exactamente lo contrario de la consulta de existencia, que busca objetos sin campo específico o valor vacío. Consultas de comodín o regexp
Consultas compuestas/Estas consultas son conjuntos de consultas diferentes, que se utilizan conjuntamente mediante operadores booleanos (por ejemplo, y
POST /o, o bien) o para diferentes índices o que tienen llamadas a funciones, entre otros, que se combinan entre sí./schools { _search "query": { "bool": { "must": { } "term": { "state": "UP"} "filter": {22"term": { "fees": "" } "minimum_should_match": "00"} 1, "boost": 1.0 } } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "took": 6, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 0, "relation": "eq" } "max_score": null, "hits": [ ] } }
Estas consultas procesan ubicaciones geográficas y objetos geográficos. Estas consultas ayudan a encontrar escuelas o cualquier otro objeto geográfico cercano a una ubicación geográfica. Necesita usar el tipo de datos geoespaciales.
PUT /geo_example { "mappings": { "properties": { "location": { "type": "geo_shape" } } } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "acknowledged": true, "shards_acknowledged": true, "index": "geo_example" }
Ahora, publicaremos los datos en el índice creado anteriormente.
POST /geo_example/_doc?refresh { "name": "Capítulo Uno, Londres, Reino Unido", "location": { "type": "point", "coordinates": [11.660544, 57.800286} } }
Después de ejecutar el código anterior, obtenemos la respuesta siguiente:
{ "took": 1, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": 2, "relation": "eq" } "max_score": 1.0, "hits": [ "_index": "geo_example", "_type": "_doc", "_id": "hASWZ2oBbkdGzVfiXHKD "_score": 1.0, "_source": { "name": "Chapter One, London, UK", "location": { "type": "point", "coordinates": [ 11.660544, 57.800286 } } } } }