Configurazione degli indici

NOTA
Per un archivio di grandi dimensioni, la creazione di un indice è un’operazione che richiede tempo. Questo vale sia per la creazione iniziale di un indice che per la reindicizzazione (ricostruzione di un indice dopo la modifica della definizione). Vedere anche Risoluzione dei problemi relativi agli indici Oak e Prevenzione della reindicizzazione lenta.

Se la reindicizzazione è necessaria in archivi di grandi dimensioni, specialmente quando si utilizza MongoDB e per gli indici full-text, considera la pre-estrazione del testo e l’utilizzo di oak-run per creare l’indice iniziale e reindicizzare.

Gli indici sono configurati come nodi nell'archivio nel nodo Oak:index.

Il tipo del nodo indice deve essere oak:QueryIndexDefinition. Per ogni indicizzatore sono disponibili diverse opzioni di configurazione come proprietà del nodo. Per ulteriori informazioni, consulta i dettagli di configurazione per ogni tipo di indicizzatore riportati di seguito.

Indice proprietà

L'indice delle proprietà è utile per le query che hanno vincoli di proprietà ma non sono full-text. Può essere configurato seguendo la procedura seguente:

  1. Apri CRXDE andando su http://localhost:4502/crx/de/index.jsp

  2. Crea un nodo in oak:index

  3. Denomina il nodo PropertyIndex e imposta il tipo di nodo su oak:QueryIndexDefinition

  4. Imposta le seguenti proprietà per il nuovo nodo:

    • tipo: property (di tipo Stringa)
    • propertyNames: jcr:uuid (di tipo Name)

    In questo esempio particolare viene indicizzata la proprietà jcr:uuid, il cui processo consiste nell'esporre l'identificatore univoco universale (UUID) del nodo a cui è associata.

  5. Salva le modifiche.

L’indice delle proprietà dispone delle seguenti opzioni di configurazione:

  • La proprietà type specifica il tipo di indice e in questo caso deve essere impostata su property

  • La proprietà propertyNames indica l'elenco delle proprietà memorizzate nell'indice. Se manca, il nome del nodo viene utilizzato come valore di riferimento del nome di proprietà. In questo esempio, la proprietà jcr:uuid il cui processo consiste nell'esporre l'identificatore univoco (UUID) del relativo nodo viene aggiunta all'indice.

  • Il flag unique che, se impostato su true, aggiunge un vincolo di univocità nell'indice della proprietà.

  • La proprietà DeclaringNodeTypes consente di specificare un determinato tipo di nodo a cui si applica solo l'indice.

  • Il flag reindex che, se impostato su true, attiva una reindicizzazione del contenuto completo.

Indice ordinato

L'indice Ordinato è un'estensione dell'indice Proprietà. Tuttavia, è stato dichiarato obsoleto. Gli indici di questo tipo devono essere sostituiti con Indice proprietà Lucene.

Indice full-text Lucene

Un indicizzatore full-text basato su Apache Lucene è disponibile in AEM 6.

Se è configurato un indice full-text, tutte le query con una condizione full-text utilizzano l'indice full-text, indipendentemente dall'esistenza di altre condizioni indicizzate e da eventuali restrizioni di percorso.

Se non è configurato alcun indice full-text, le query con condizioni full-text non funzionano come previsto.

Poiché l’indice viene aggiornato tramite un thread in background asincrono, alcune ricerche full-text non sono disponibili per una piccola finestra di tempo fino al completamento dei processi in background.

Per configurare un indice full-text Lucene, attenersi alla procedura descritta di seguito.

  1. Apri CRXDE e crea un nodo in oak:index.

  2. Denomina il nodo LuceneIndex e imposta il tipo di nodo su oak:QueryIndexDefinition

  3. Aggiungi le seguenti proprietà al nodo:

    • tipo: lucene (di tipo Stringa)
    • asincrono: async (di tipo String)
  4. Salva le modifiche.

L’indice Lucene dispone delle seguenti opzioni di configurazione:

  • La proprietà type che specifica il tipo di indice deve essere impostata su lucene
  • La proprietà async che deve essere impostata su async. In questo modo il processo di aggiornamento dell’indice viene inviato a un thread in background.
  • La proprietà includePropertyTypes, che definisce il sottoinsieme dei tipi di proprietà inclusi nell'indice.
  • La proprietà excludePropertyNames che definisce un elenco di nomi di proprietà, ovvero proprietà da escludere dall'indice.
  • Il flag reindex che, se impostato su true, attiva una reindicizzazione del contenuto completo.