Lass elasticsearch nur bestimmte Felder zurückgeben?
Ich bin mit elasticsearch für den index meine Dokumente.
Ist es möglich, zu belehren, dass es nur zurückgeben bestimmten Bereichen statt des gesamten json-Dokument gespeichert hat?
InformationsquelleAutor der Frage user1199438 | 2012-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yep! Verwenden Sie eine Quelle-filter. Wenn Sie auf der Suche mit JSON es wird in etwa so Aussehen:
In ES-2.4 und früher konnte man auch mit dem Felder option, um die search API:
Diese veraltet ist, in der ES 5+. Und source-Filter sind mächtiger sowieso!
InformationsquelleAutor der Antwort kevingessner
Fand ich die docs für die
get api
hilfreich sein - vor allem die beiden Abschnitte, Quelle filtern und Felder: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.htmlGeben Sie über das Quelle-Filter:
Eingebaut meinen Anwendungsfall perfekt. Ich landete einfach-Filterung der Quelle so (mit dem Kürzel):
FYI, Sie sagen, in der Dokumentation über die Felder parameter:
Scheint es gerecht zu werden, für Felder, die speziell gespeichert, wo es platziert jedes Feld in einem array. Wenn die angegebenen Felder wurden noch nicht gespeichert sind, holt sich jeder aus dem _source, was dazu führen konnte, 'langsamer' Abfragen. Ich hatte auch Mühe versucht, es zu bekommen zurück zu kehren Felder vom Typ object.
So, in Zusammenfassung, haben Sie zwei Möglichkeiten, entweder durch source-Filterung oder [gespeichert] Felder.
InformationsquelleAutor der Antwort Markus Coetzee
InformationsquelleAutor der Antwort Pinkesh Sharma
response_filtering
https://stackoverflow.com/a/35647027/844700
InformationsquelleAutor der Antwort The Demz
In Elasticsearch 5.x die oben beschriebene Vorgehensweise ist veraltet.
Sie können die _source Ansatz, aber doch in bestimmten Situationen kann es Sinn machen, zu speichern, ein Feld. Zum Beispiel, wenn Sie ein Dokument mit einem Titel, einem Datum und einem sehr großen content-Bereich können Sie abrufen möchten nur den Titel und das Datum, ohne diese zu extrahieren Felder aus einer großen _source Feld:
In diesem Fall, die Sie verwenden würden:
Finden Sie in der Dokumentation zur index-Feld gespeichert.
Immer gerne für ein Upvote!
InformationsquelleAutor der Antwort woltob
Quelle Filterung von
Ermöglicht zu kontrollieren, wie das _source-Feld zurückgegeben wird, mit jedem Treffer.
Dem Stichwort "enthält" definiert die Besonderheiten Felder.
InformationsquelleAutor der Antwort Fabricio
InformationsquelleAutor der Antwort Gaurav
In java können Sie setFetchSource wie diese :
InformationsquelleAutor der Antwort user1693371
Einer REST-API GET-Anforderung könnte mit '_source' parameter.
Beispiel Anfrage
Antwort
}
InformationsquelleAutor der Antwort Ironluca