English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No Elasticsearch, a pesquisa é feita usando consultas baseadas em JSON. A consulta é composta por duas frases-
Frases de consulta folhas — essas frases são coincidências, termos ou intervalos, que procuram valores específicos em campos específicos.
Frases de consulta compostas — essas consultas são combinações de frases de consulta folhas e compostas, usadas para extrair informações necessárias.
O Elasticsearch suporta uma grande variedade de consultas. As consultas começam com uma palavra-chave de consulta, seguidas por um objeto JSON que contém condições e filtros. A seguir, são descritas diferentes tipos de consultas.
Esta é a consulta mais básica; ela retorna todo o conteúdo, e a pontuação de cada objeto é1.0。
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc./schools { "query":{ "match_all":{} } }
Ao executar o código acima, obtemos os seguintes 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": "" } } } } }
Essas consultas são usadas para buscar conteúdo completo, como capítulos ou artigos de notícias. A consulta depende do analisador associado ao índice ou documento específico. Nesta seção, discutiremos os diferentes tipos de consultas de conteúdo completo.
Esta consulta compara texto ou frases com os valores de um ou mais campos.
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc.*/schools { "query":{ "match": { "rating":"4.5"rating": "" } } }
Após executar o código acima, obtemos a seguinte resposta:
{ "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 compara texto ou frases com um ou mais campos.
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc.*/schools { "query":{ "multi_match": { "query": "paprola" "fields": ["city", "state"] } } }
Após executar o código acima, obtemos a seguinte resposta:
{ "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 usa o analisador de consulta e a palavra-chave query_string.
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc.*/schools { "query":{ "query_string":{ "query":"beautiful" } } }
Após executar o código acima, obtemos a seguinte resposta:
{ "took": : 60, "timed_out": false, "_shards": { "total": : 1, "successful": : 1, "skipped": 0, "failed": 0 } "hits": { "total": { "value": : 1, "relation": "eq" } ………………………………….
Essas consultas tratam principalmente dados estruturados, como números, datas e enumerações.
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc.*/schools { "query":{ "term":{"zip":"176115} } }
Após executar o código acima, obtemos a seguinte resposta:
…………………………….. "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 é usada para encontrar objetos com valores dentro de um intervalo específico. Para isso, precisamos usar operadores, como-
gte −maior ou igual a
gt −maior que
lte −menor ou igual a
lt −menor que
Observar o código fornecido a seguir-
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc.*/schools { "query":{ "range":{ "rating":{ "gte":3.5 } } } }
Após executar o código acima, obtemos a seguinte resposta:
{ "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": "" } } } } }
""-
Existem outros tipos de consultas de nível de termo, como Consultas de existência
−Se o valor de algum campo não for vazio. Consultas de ausência
−Isso é o oposto da consulta de existência, que busca objetos sem campo específico ou valor vazio. Consultas de coringa ou regexp
Consultas compostas/Estas consultas são conjuntos de consultas diferentes, que são combinadas usando operadores booleanos (por exemplo, e)
POST /ou, ou não) ou combinar diferentes índices ou que contenham chamadas de funções, etc./schools { _search "query": { "bool": { "must": { } "term": {"state": "UP"}} "filter": {22"term": {"fees": ""} } "minimum_should_match": "00"} 1, "boost": : 1.0 } } }
Após executar o código acima, obtemos a seguinte resposta:
{ "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 processam localizações geográficas e objetos geográficos. Estas consultas ajudam a encontrar objetos geográficos próximos a escolas ou qualquer outra localização geográfica. Você precisa usar o tipo de dados geográficos.
PUT /geo_example { "mappings": { "properties": { "location": { "type": "geo_shape" } } } }
Após executar o código acima, obtemos a seguinte resposta:
{ "acknowledged": true, "shards_acknowledged": true, "index": "geo_example" }
Agora, publicaremos os dados no índice criado acima.
POST /geo_example/_doc?refresh { "name": "Capítulo Um, Londres, Reino Unido", "location": { "type": "point", "coordinates": [11.660544, 57.800286} } }
Após executar o código acima, obtemos a seguinte resposta:
{ "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": "Capítulo Um, Londres, Reino Unido", "location": { "type": "point", "coordinates": [ 11.660544, 57.800286 } } } } }