Elasticsearch Wählen Sie bestimmte Felder aus

Elasticsearch Wählen Sie bestimmte Felder aus

Elasticsearch wird standardmäßig alle Felder in einem Dokument bei der Ausführung einer Suchabfrage zurückgeben. Dies wird durch den Parameter _source definiert, der alle im Datensatz während der Indexierung gespeicherten Daten enthält.

curl -xget "http: // localhost: 9200/netflix/_doc/hxyz_iiblbuc0z3qken2?Pretty "-h" KBN -XSRF: Berichterstattung "

Ausgang:

Möglicherweise möchten Sie jedoch nicht alle Felder aus einem bestimmten Dokument abrufen. In diesem Tutorial erfahren Sie, wie aus einem Dokument bestimmte Felder ausgewählt werden.

Elasticsearch Fields Option

Mit dem Parameter von Feldern können wir bestimmte Felder in einer Suchanforderung abrufen. Darüber hinaus ermöglicht der Feldparameter uns, einzelne oder mehrere Felder zu holen. Sie können auch Daten und räumliche Datentypen mit dem Parameter Fields formatieren.

Nehmen wir beispielsweise an, wir möchten den Index-, ID-, Titel-, Release_year-, Listed-, Dauer- und Bewertungsfeldern aus dem Netflix -Index abrufen. Wir können eine Abfrage wie unten gezeigt ausführen:

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

"Anfrage":
"passen":
"_id": "hxyz_iiblbuc0z3qken2"

,
"Felder": [
"Index",
"Ausweis",
"Titel",
"Erscheinungsjahr",
"aufgelistet in",
"Dauer",
"Bewertung"
],
"_Source": Falsch
'

In der obigen Anforderung verwenden wir die Such -API, um das Dokument mit der angegebenen ID im Parameter der Übereinstimmung zu durchsuchen.

Wir verwenden dann den Parameter Felder, um die spezifischen Felder aus dem Zieldokument abzurufen.

Beachten Sie, dass die Elasticsearch standardmäßig den Parameter _Source enthalten, der aus allen Dokumentfeldern besteht. Um sicherzustellen, dass wir nur die angegebenen Felder abrufen, schalten wir den Parameter _Source aus:

Die obige Anfrage sollte eine Antwort wie gezeigt zurückgeben:


"nahm": 1,
"Timed_out": Falsch,
"_shards":
"Gesamt": 1,
"erfolgreich": 1,
"übersprungen": 0,
"fehlgeschlagen": 0
,
"Hits":
"Gesamt":
"Wert": 1,
"Beziehung": "EQ"
,
"max_score": 1,
"Hits": [

"_index": "netflix",
"_id": "hxyz_iiblbuc0z3qken2",
"_score": 1,
"Felder":
"aufgelistet in": [
"Dokumentarfilme"
],
"Dauer": [
"90 min"
],
"Erscheinungsjahr": [
2020
],
"Bewertung": [
"PG-13"
],
"Titel": [
"Dick Johnson ist tot"
]


]

Sie können auch den Parameter _Source verwenden, um zu definieren, welche Felder aus einer Suchabfrage zurückkehren sollen. Ein Beispiel ist unten gezeigt:

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

"_Source": ["Titel", "Release_year", "Bewertung", "Dauer"],
"Anfrage":
"Begriff":
"_Ausweis":
"Wert": "hxyz_iiblbuc0z3qken2"



'

In diesem Fall geben wir die Felder an, die wir als Array im Quellparameter abrufen möchten. Die obige Anfrage sollte die Antwort wie gezeigt zurückgeben:


"Nehmen": 0,
"Timed_out": Falsch,
"_shards":
"Gesamt": 1,
"erfolgreich": 1,
"übersprungen": 0,
"fehlgeschlagen": 0
,
"Hits":
"Gesamt":
"Wert": 1,
"Beziehung": "EQ"
,
"max_score": 1,
"Hits": [

"_index": "netflix",
"_id": "hxyz_iiblbuc0z3qken2",
"_score": 1,
"_Quelle":
"Dauer": "90 min",
"Release_year": 2020,
"Bewertung": "PG-13",
"Titel": "Dick Johnson ist tot"


]

Abschluss

In diesem Artikel haben Sie gelernt, wie Sie bestimmte Felder aus einer Suchanforderung mit den Feldern und _Source -Parametern abrufen können.

Weitere Informationen zu Elasticsearch und seinen Fähigkeiten finden Sie in unseren Tutorials zum Thema. Sie werden garantiert etwas Nützliches finden.

Danke fürs Lesen und fangen Sie im nächsten!!