Elasticsearch sélectionnez des champs spécifiques

Elasticsearch sélectionnez des champs spécifiques

Elasticsearch sera par défaut de renvoyer tous les champs d'un document lors de l'exécution d'une requête de recherche. Ceci est défini par le paramètre _Source, qui contient toutes les données stockées dans l'enregistrement pendant l'indexation.

curl -xget "http: // localhost: 9200 / netflix / _doc / hxyz_iiblbuc0z3qken2?joli "-h" kbn-xsrf: reporting "

Sortir:

Cependant, vous ne voudrez peut-être pas récupérer tous les champs d'un document donné. Dans ce tutoriel, vous découvrirez comment sélectionner des champs spécifiques à partir d'un document.

Option Elasticsearch Fields

Le paramètre des champs nous permet de récupérer des champs spécifiques dans une demande de recherche. De plus, le paramètre de champ nous permettra de récupérer des champs uniques ou multiples. Vous pouvez également formater les dates et les types de données spatiales à l'aide du paramètre des champs.

Par exemple, supposons que nous voulons récupérer les champs d'index, d'id, de titre, de release_year, répertoriés dans, durée et des champs de notation de l'index Netflix, nous pouvons exécuter une requête comme indiqué ci-dessous:

curl -xget "http: // localhost / netflix / _search" -h "kbn-xsrf: reportage" -h "contenu-type: application / json" -d '

"mettre en doute":
"correspondre":
"_id": "HXYZ_IIBLBUC0Z3QKEN2"

,
"des champs": [
"indice",
"identifiant",
"titre",
"année de sortie",
"listed_in",
"durée",
"notation"
]],
"_source": faux
'

Dans la demande ci-dessus, nous utilisons l'API de recherche pour rechercher le document avec l'ID spécifié dans le paramètre de correspondance.

Nous utilisons ensuite le paramètre des champs pour récupérer les champs spécifiques du document cible.

Notez que la recherche Elasticsearch comprendra par défaut le paramètre _Source, composé de tous les champs de documents. Pour nous assurer que nous venons uniquement les champs spécifiés, nous désactivons le paramètre _Source:

La demande ci-dessus doit renvoyer une réponse comme indiqué:


"Taked": 1,
"timed_out": faux,
"_fragments":
"Total": 1,
"réussi": 1,
"sauté": 0,
"Échec": 0
,
"les coups":
"total":
"valeur": 1,
"relation": "EQ"
,
"max_score": 1,
"les coups": [

"_index": "Netflix",
"_id": "HXYZ_IIBLBUC0Z3QKEN2",
"_score": 1,
"des champs":
"listed_in": [
"Documentaires"
]],
"durée": [
"90 min"
]],
"année de sortie": [
2020
]],
"notation": [
"PG-13"
]],
"titre": [
"Dick Johnson est mort"
]]


]]

Vous pouvez également utiliser le paramètre _Source pour définir les champs à retourner d'une requête de recherche. Un exemple est indiqué ci-dessous:

curl -xget "http: // localhost: 9200 / netflix / _search" -h "kbn-xsrf: reporting" -h "contenu-type: application / json" -d '

"_source": ["title", "release_year", "note", "durée"],
"mettre en doute":
"terme":
"_identifiant":
"Valeur": "HXYZ_IIBLBUC0Z3QKEN2"



'

Dans ce cas, nous spécifions les champs que nous souhaitons récupérer en tant que tableau dans le paramètre source. La demande ci-dessus doit renvoyer la réponse comme indiqué:


"Taked": 0,
"timed_out": faux,
"_fragments":
"Total": 1,
"réussi": 1,
"sauté": 0,
"Échec": 0
,
"les coups":
"total":
"valeur": 1,
"relation": "EQ"
,
"max_score": 1,
"les coups": [

"_index": "Netflix",
"_id": "HXYZ_IIBLBUC0Z3QKEN2",
"_score": 1,
"_source":
"durée": "90 min",
"release_year": 2020,
"Note": "PG-13",
"Titre": "Dick Johnson est mort"


]]

Conclusion

Dans cet article, vous avez appris à récupérer des champs spécifiques à partir d'une demande de recherche en utilisant les champs et les paramètres _Source.

Pour en savoir plus sur Elasticsearch et ses capacités, consultez nos tutoriels sur le sujet. Vous êtes assuré de trouver quelque chose d'utile.

Merci de vous avoir lu et de vous attraper dans le prochain!!