Elasticsearch Seleccioneu camps específics

Elasticsearch Seleccioneu Camps Especifics



Elasticsearch retornarà per defecte tots els camps d'un document en realitzar una consulta de cerca. Això es defineix pel paràmetre _source, que conté totes les dades emmagatzemades al registre durant la indexació.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: informes'

Sortida:







Tanmateix, és possible que no vulgueu recuperar tots els camps d'un document determinat. En aquest tutorial, aprendràs a seleccionar camps específics d'un document.



Opció de camps d'Elasticsearch

El paràmetre de camps ens permet recuperar camps específics en una sol·licitud de cerca. A més, el paràmetre de camp ens permetrà obtenir un o diversos camps. També podeu formatar dates i tipus de dades espacials mitjançant el paràmetre fields.



Per exemple, suposem que volem recuperar els camps índex, id, title, release_year, llistat a, duration i rating de l'índex de Netflix, podem executar una consulta com es mostra a continuació:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: informes' -H 'Tipus de contingut: aplicació/json' -d'
{
'consulta': {
'coincidència': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'camps': [
'índex',
'id',
'títol',
'any_de_estrena',
'listed_in',
'durada',
'puntuació'
],
'_font': fals

}'

A la sol·licitud anterior, utilitzem l'API de cerca per cercar el document amb l'identificador especificat al paràmetre de coincidència.

A continuació, utilitzem el paràmetre fields per obtenir els camps específics del document de destinació.



Tingueu en compte que l'Elasticsearch inclourà per defecte el paràmetre _source, que consta de tots els camps del document. Per assegurar-nos que només obtenim els camps especificats, desactivem el paràmetre _source:

La sol·licitud anterior hauria de retornar una resposta tal com es mostra:

{
'va prendre': 1,
'timed_out': fals,
'_shards': {
'total': 1,
'èxit': 1,
'saltat': 0,
'fallit': 0
},
'accessos': {
'total': {
'valor': 1,
'relació': 'eq'
},
'puntuació màxima': 1,
'accessos': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_puntuació': 1,
'camps': {
'listed_in': [
'documentals'
],
'durada': [
'90 min'
],
'any_de_estrena': [
2020
],
'puntuació': [
'PG-13'
],
'títol': [
'Dick Johnson ha mort'
]
}
}
]
}
}

També podeu utilitzar el paràmetre _source per definir quins camps voleu tornar d'una consulta de cerca. A continuació es mostra un exemple:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: informes' -H 'Tipus de contingut: aplicació/json' -d'
{
'_source': ['títol', 'any_de_estrena', 'puntuació', 'durada'],
'consulta': {
'terme': {
'_id': {
'valor': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

En aquest cas, especifiquem els camps que volem recuperar com a matriu al paràmetre font. La sol·licitud anterior hauria de retornar la resposta tal com es mostra:

{
'va prendre': 0,
'timed_out': fals,
'_shards': {
'total': 1,
'èxit': 1,
'saltat': 0,
'fallit': 0
},
'accessos': {
'total': {
'valor': 1,
'relació': 'eq'
},
'puntuació màxima': 1,
'accessos': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_puntuació': 1,
'_font': {
'durada': '90 min',
'any_de_estrena': 2020,
'puntuació': 'PG-13',
'title': 'Dick Johnson és mort'
}
}
]
}

}

Conclusió

En aquest article, heu après com obtenir camps específics d'una sol·licitud de cerca mitjançant els paràmetres de camps i _source.

Per obtenir més informació sobre Elasticsearch i les seves capacitats, consulteu els nostres tutorials sobre el tema. Segur que trobareu alguna cosa útil.

Gràcies per llegir-te i t'atrapar a la propera!!