583 Stimmen

Elasticsearch soll nur bestimmte Felder zurückgeben?

Ich verwende elasticsearch, um meine Dokumente zu indizieren.

Ist es möglich, es anzuweisen, nur bestimmte Felder anstelle des gesamten gespeicherten json-Dokuments zurückzugeben?

4voto

user1693371 Punkte 115

In Java können Sie setFetchSource wie folgt verwenden:

client.prepareSearch(index).setTypes(type)
            .setFetchSource(new String[] { "field1", "field2" }, null)

3voto

Yao Pan Punkte 494

Ein Beispiel: Sie haben ein Dokument mit drei Feldern:

PUT movie/_doc/1
{
  "name":"The Lion King",
  "language":"English",
  "score":"9.3"
}

Wenn Sie zurückkehren möchten name y score können Sie den folgenden Befehl verwenden:

GET movie/_doc/1?_source_includes=name,score

Wenn Sie einige Felder erhalten möchten, die einem Muster entsprechen:

GET movie/_doc/1?_source_includes=*re

Vielleicht einige Felder ausschließen:

GET movie/_doc/1?_source_excludes=score

1voto

dılo sürücü Punkte 2737

Wenn Sie Sql kennen, schreiben Sie bitte eine Abfrage, um den Wert des Codes zu erhalten, zum Beispiel Sql-Abfrage äquivalent und elasticsearch Abfrage

POST /_sql/translate
{

  "query": "select name,surname from users"
}

Das Ergebnis ist, dass Sie sich den Include-Schlüssel genau ansehen sollten.

{
  "size" : 1000,
  "_source" : {
    "includes" : [
      "name",
      "surname"
    ],
    "excludes" : [ ]
  },
  "sort" : [
    {
      "_doc" : {
        "order" : "asc"
      }
    }
  ]
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X