Indici JSON

Gli indici JSON sono indici di IBM Cloudant Query eccellenti per le query di uguaglianza ($eq) e di intervallo ($lt, $lte, $gte e $gte). Creare indici JSON per supportare le query che includono questi operatori.

Creare indici JSON

Per creare un indice JSON nel database $DATABASE, effettuare una richiesta POST a /$DATABASE/_index con un oggetto JSON che descrive l'indice nel corpo della richiesta. Il campo type dell'oggetto JSON deve essere impostato su json. Un indice JSON può essere partizionato o globale; questa opzione si imposta utilizzando il campo partitioned.

Si veda il seguente esempio che utilizza HTTP per richiedere un indice di tipo JSON:

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

Si veda il seguente esempio di un oggetto JSON che crea un indice partizionato chiamato foo-partitioned-index per il campo chiamato foo:

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

Si veda l'esempio seguente di un oggetto JSON che crea un indice globale chiamato bar-global-index per il campo chiamato bar:

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

Si veda il seguente esempio di JSON restituito, che conferma la creazione dell'indice:

{
    "result": "created"
}
Formato del corpo della richiesta
Campo Descrizione
index campi - Un array JSON di nomi di campi che utilizza la sintassi di ordinamento. Sono ammessi anche campi annidati, ad esempio person.name.
ddoc (facoltativo) Nome del documento di progettazione in cui viene creato l'indice. Per impostazione predefinita, ogni indice viene creato nel proprio documento di progettazione. Gli indici possono essere raggruppati in documenti di progettazione per garantire l'efficienza. Tuttavia, la modifica di un indice in un documento di progettazione invalida tutti gli altri indici dello stesso documento.
type (facoltativo) Può essere json o text. L'impostazione predefinita è json.
name (facoltativo) Nome dell'indice. Se non viene fornito alcun nome, viene generato automaticamente un nome.
partitioned (opzionale, booleano) Determina se questo indice è partizionato. Per ulteriori informazioni, consultare il campo partitioned.

Il campo partitioned

Questo campo stabilisce se l'indice creato è un indice partizionato o globale.

Valori dei campi partizionati
Valore Descrizione Note
true Creare l'indice come partizionato. Può essere utilizzato solo in un database partizionato.
false Creare l'indice come globale. Può essere utilizzato in qualsiasi database.

L'impostazione predefinita è quella di partitioned per il database:

Valore predefinito della partizione
Il database è partizionato? Valore predefinito partitioned Valori consentiti
true true, false
No false false

È importante ribadire che il valore predefinito di partitioned è true per gli indici creati in un database partizionato. Questo valore predefinito significa che l'indice non può non può essere usato per soddisfare query globali.

Codici di ritorno
Codice Descrizione
200 L'indice è stato creato con successo o esisteva nel database.
400 Richiesta errata: il corpo della richiesta non ha il formato specificato.