Elasticsearch Get Document

Elasticsearch Get Document
“Elasticsearch é um mecanismo de pesquisa popular e poderoso que pode lidar com grandes quantidades de dados. Nesse sentido, o Elasticsearch pode ser relacionável a um banco de dados relacional, pois permite que você armazene dados.

Como todos os bancos de dados, você criará, buscará, atualizará e excluirá registros do banco de dados. No entanto, diferentemente dos bancos de dados relacionais, o Elasticsearch não fornece uma linguagem de consulta integrada, como SQL, CQL, etc. Em vez disso, interagimos com os pontos de extremidade da API que o Elasticsearch expõe, permitindo que realizemos inúmeras ações com chamadas HTTP simples.”

Na postagem, você descobrirá como buscar documentos armazenados no Elasticsearch usando a API Get Documents.

Sintaxe da API

A API Get Document nos permite buscar documentos JSON armazenados em um determinado índice. O trecho abaixo mostra a sintaxe da solicitação para buscar documentos.

Get /_doc /<_id>

Você também pode usar o método HTTP da cabeça para verificar um documento em vez de devolvê -lo. A sintaxe é como mostrado:

CABEÇA /_doc/<_id>

A solicitação leva os seguintes parâmetros:

  1. - Especifica o nome do índice no qual o documento de destino é armazenado.
  2. - Especifica o ID exclusivo do documento de destino.

A solicitação também suporta os seguintes parâmetros de consulta. Isso permite que você modifique como a API se comporta e o resultado da consulta. Esses parâmetros incluem:

  1. preferência - define o nó de destino/shard no qual a busca é realizada.
  2. em tempo real-garante que o resultado seja absoluto em tempo real, diferentemente do padrão, que é quase em tempo real.
  3. Atualizar - permite que a solicitação aguarde a atualização periódica do Elasticsearch. Este parâmetro também pode permitir que a solicitação atualize o Shard antes de executar a operação de busca.
  4. roteamento - especifica operações de rota para um nó/shard específico.
  5. _Source - um valor booleano que determina se a solicitação retorna ou não o _source arquivado.
  6. _source_excludes - Especifica uma lista de campos de origem excluídos do resultado.
  7. _source_includes - campos de origem incluídos no resultado.
  8. Versão - Especifica o número da versão para gerenciamento de simultaneidade.

Valor de retorno

A solicitação de documento GET terá os seguintes valores:

  1. _index - o nome do índice em que os documentos consultados pertencem.
  2. _id - o ID do documento consultado.
  3. _seq_no - o número de sequência do documento usado para indexação.
  4. _Primary_Term - mostra o termo primário para o documento.
  5. encontrado - indica se o registro existe ou não como um valor booleano.
  6. _Routing - representa o roteamento explicador especificado na solicitação.
  7. _source - mantém os dados do documento como json.
  8. _field - mostra os campos de documentos.

Exemplo - Elasticsearch Fetch Document

O exemplo a seguir mostra como buscar um documento com o ID de 'qxya7yib38eq5h5gt9ru' do índice chamado 'kibana_sample_data_logs.'

Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: relatórios"

Depois de executar a consulta acima, devemos obter uma resposta como mostrado:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_versão 1,
"_seq_no": 2383,
"_Primary_term": 1,
"Found": verdadeiro,
"_fonte":
"Agente": "Mozilla/5.0 (x11; Linux i686) Applewebkit/534.24 (Khtml, como Gecko) Chrome/11.0.696.50 Safari/534.24 ",
"Bytes": 4447,
"Clientip": "70.141.48.11 ",
"Extensão": "Zip",
"Geo":
"srcdest": "nós: bd",
"src": "nós",
"Dest": "BD",
"Coordenadas":
"Lat": 38.14893833,
"Lon": -89.69870972

,
"Host": "Artefatos.elástico.CO ",
"Índice": "Kibana_sample_data_logs",
"IP": "70.141.48.11 ",
"máquina":
"Ram": 7516192768,
"OS": "Win 8"
,
"Memória": NULL,
"Mensagem": "70.141.48.11 - - [2018-08-01T12: 14: 55.373Z] "Get /Kibana /Kibana-6.3.2-Windows-X86_64.zip http/1.1 "200 4447"-"" Mozilla/5.0 (x11; Linux i686) Applewebkit/534.24 (Khtml, como Gecko) Chrome/11.0.696.50 Safari/534.24 "",
"PhpMemory": NULL,
"Refereiro": "http: // twitter.com/sucesso/Mary-Weber ",
"Solicitação": "/kibana/kibana-6.3.2-Windows-X86_64.fecho eclair",
"Resposta": 200,
"Tag": [
"sucesso",
"Info"
],
"Timestamp": "2022-08-31T12: 14: 55.373Z ",
"url": "https: // artefatos.elástico.co/downloads/kibana/kibana-6.3.2-Windows-X86_64.fecho eclair",
"UTC_TIME": "2022-08-31T12: 14: 55.373Z ",
"Evento":
"DataSet": "sample_web_logs"


Exemplo 2 - Verifique se o documento existe

Você pode usar o método HTTP da cabeça para verificar se existe um documento com o ID especificado antes de buscá -lo.

Curl -xhead "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: relatórios"

Se o documento existir no índice, a solicitação retornará 200 - OK.

Caso contrário, se o documento não for encontrado no índice especificado, a solicitação retorna:


"StatusCode": 404,
"erro não encontrado",
"Mensagem": "404 - não encontrado"

Exemplo 3 - buscar campos específicos

Podemos recuperar campos específicos do documento definindo o parâmetro fonte_includes:

Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru?_source_includes =*.id, cliente, máquina.OS, resposta "-h" kbn -xsrf: relatórios "

A solicitação acima deve buscar os documentos com o ID especificado e retornar apenas os campos ID, Clientip, OS e Response.

A resposta é como mostrado:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_versão 1,
"_seq_no": 2383,
"_Primary_term": 1,
"Found": verdadeiro,
"_fonte":
"Clientip": "70.141.48.11 ",
"máquina":
"OS": "Win 8"
,
"Resposta": 200

Conclusão

Neste artigo, você explorou como buscar documentos de um índice de elasticsearch usando a API Get Document.