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"
}
| 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.
| 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:
| Il database è partizionato? | Valore predefinito partitioned |
Valori consentiti |
|---|---|---|
| Sì | 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.
| 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. |