JSON-Indizes

JSON-Indizes sind IBM Cloudant Query-Indizes, die sich hervorragend für Gleichheits- ($eq) und Bereichsabfragen ($lt, $lte, $gte und $gte) eignen. Erstellen Sie JSON-Indizes zur Unterstützung von Abfragen, die diese Operatoren enthalten.

Erstellen von JSON-Indizes

Zum Erstellen eines JSON-Index in der Datenbank $DATABASE senden Sie eine POST-Anforderung an /$DATABASE/_index mit einem JSON-Objekt, das den Index im Anforderungshauptteil beschreibt. Das Feld type des JSON-Objekts muss auf jsongesetzt sein. Ein JSON-Index kann partitioniert oder global sein. Diese Option wird im Feld partitioned festgelegt.

Im folgenden Beispiel wird HTTP verwendet, um einen Index vom Typ JSON anzufordern:

POST /$DATABASE/_index HTTP/1.1
Content-Type: application/json

Im folgenden Beispiel für ein JSON-Objekt wird ein partitionierter Index mit dem Namen foo-partitioned-index für das Feld mit dem Namen foo erstellt:

{
    "index": {
        "fields": ["foo"]
    },
    "name" : "foo-partitioned-index",
    "type" : "json",
    "partitioned": true
}

Im folgenden Beispiel für ein JSON-Objekt wird ein globaler Index mit dem Namen bar-global-index für das Feld mit dem Namen bar erstellt:

{
    "index": {
        "fields": ["bar"]
    },
    "name" : "bar-global-index",
    "type" : "json",
    "partitioned": false
}

Das folgende Beispiel für eine zurückgegebene JSON-Antwort bestätigt, dass der Index erstellt wurde:

{
    "result": "created"
}
Format des Anfragekörpers
Feld Beschreibung
index Felder - Ein JSON-Array mit Feldnamen, das die Sortiersyntax verwendet. Verschachtelte Felder sind ebenfalls zulässig, z. B. person.name.
ddoc (fakultativ) Der Name des Entwurfsdokuments, in dem der Index erstellt wird. Standardmäßig wird jeder Index in einem eigenen Entwurfsdokument erstellt. Indizes können aus Effizienzgründen zu Entwurfsdokumenten gruppiert werden. Allerdings macht eine Änderung an einem Index in einem Entwurfsdokument alle anderen Indizes in demselben Dokument ungültig.
type (fakultativ) Kann json oder text sein. Standardwert: json.
name (fakultativ) Der Name des Index. Wenn kein Name angegeben wird, wird automatisch ein Name generiert.
partitioned (optional, boolesch) Legt fest, ob dieser Index partitioniert ist. Weitere Informationen finden Sie unter Feld partitioned.

Feld partitioned

Dieses Feld legt fest, ob der erstellte Index ein partitionierter oder globaler Index ist.

Aufgeteilte Feldwerte
Wert Beschreibung Anmerkungen
true Partitionierten Index erstellen. Kann nur in einer partitionierten Datenbank verwendet werden.
false Globalen Index erstellen. Kann in jeder Datenbank verwendet werden.

Der Standardwert für partitioned richtet sich nach der Einstellung 'Partitioniert' für die Datenbank:

Standardwert für die Partitionierung
Ist die Datenbank partitioniert? Standardwert für partitioned Zulässige Werte
Ja true true, false
Nein false false

Es ist wichtig zu wiederholen, dass der Standardwert partitioned lautet true für Indizes, die in einer partitionierten Datenbank erstellt werden. Dieser Standardwert bedeutet, dass der Index nicht zur Erfüllung globaler Abfragen verwendet werden kann.

Rückkehrcodes
Code Beschreibung
200 Der Index wurde erfolgreich erstellt oder war in der Datenbank vorhanden.
400 Ungültige Anforderung - Der Anforderungshauptteil hat nicht das angegebene Format.