Elasticsearch Selecione campos específicos

Elasticsearch Selecione campos específicos

Elasticsearch retornará padrão todos os campos em um documento ao realizar uma consulta de pesquisa. Isso é definido pelo parâmetro _Source, que contém todos os dados armazenados no registro durante a indexação.

Curl -xget "http: // localhost: 9200/netflix/_doc/hxyz_iiblbuc0z3qken2?Pretty "-h" KBN -XSRF: Relatórios "

Saída:

No entanto, você pode não querer recuperar todos os campos de um determinado documento. Neste tutorial, você aprenderá como selecionar campos específicos de um documento.

Opção Elasticsearch Fields

O parâmetro Fields nos permite recuperar campos específicos em uma solicitação de pesquisa. Além disso, o parâmetro de campo nos permitirá buscar campos únicos ou múltiplos. Você também pode formatar datas e tipos de dados espaciais usando o parâmetro Fields.

Por exemplo, suponha que queremos recuperar os campos de índice, ID, título, release_year, listados em, duração e classificação do índice da Netflix, podemos executar uma consulta como mostrado abaixo:

Curl -xget "http: // localhost/netflix/_search" -h "kbn -xsrf: relatórios" -h "conteúdo -tipo: aplicativo/json" -d '

"consulta":
"corresponder":
"_id": "HXYZ_IIBLBUC0Z3QKEN2"

,
"Campos": [
"índice",
"eu ia",
"título",
"ano de lançamento",
"listados em",
"duração",
"avaliação"
],
"_source": false
'

Na solicitação acima, usamos a API de pesquisa para pesquisar o documento com o ID especificado no parâmetro Match.

Em seguida, usamos o parâmetro Fields para buscar os campos específicos do documento de destino.

Observe que o Elasticsearch será padrão, incluirá o parâmetro _Source, consistindo em todos os campos de documentos. Para garantir que busquemos apenas os campos especificados, desligamos o parâmetro _Source:

A solicitação acima deve retornar uma resposta como mostrado:


"Take": 1,
"timed_out": false,
"_shards":
"Total": 1,
"bem -sucedido": 1,
"Salpado": 0,
"falhou": 0
,
"exitos":
"Total":
"Valor": 1,
"Relacionamento": "Eq"
,
"max_score": 1,
"exitos": [

"_index": "Netflix",
"_id": "HXYZ_IIBLBUC0Z3QKEN2",
"_score": 1,
"Campos":
"listados em": [
"Documentários"
],
"duração": [
"90 min"
],
"ano de lançamento": [
2020
],
"avaliação": [
"PG-13"
],
"título": [
"Dick Johnson está morto"
]


]

Você também pode usar o parâmetro _Source para definir quais campos retornar de uma consulta de pesquisa. Um exemplo é mostrado abaixo:

Curl -xget "http: // localhost: 9200/netflix/_search" -h "kbn -xsrf: reporting" -h "content -type: aplicativo/json" -d '

"_source": ["title", "release_year", "classificação", "duração"],
"consulta":
"termo":
"_eu ia":
"Valor": "HXYZ_IIBLBUC0Z3QKEN2"



'

Nesse caso, especificamos os campos que desejamos recuperar como uma matriz no parâmetro de origem. A solicitação acima deve retornar a resposta como mostrado:


"Take": 0,
"timed_out": false,
"_shards":
"Total": 1,
"bem -sucedido": 1,
"Salpado": 0,
"falhou": 0
,
"exitos":
"Total":
"Valor": 1,
"Relacionamento": "Eq"
,
"max_score": 1,
"exitos": [

"_index": "Netflix",
"_id": "HXYZ_IIBLBUC0Z3QKEN2",
"_score": 1,
"_fonte":
"Duração": "90 min",
"Release_year": 2020,
"Classificação": "PG-13",
"Título": "Dick Johnson está morto"


]

Conclusão

Neste artigo, você aprendeu a buscar campos específicos de uma solicitação de pesquisa usando os campos e parâmetros de _source.

Para saber mais sobre o Elasticsearch e seus recursos, confira nossos tutoriais sobre o tópico. Você tem garantia de encontrar algo útil.

Obrigado por ler e pegar você no próximo!!