Indicizzazione
Adobe Experience Manager offre un modo per mantenere un indice di tutte le pagine pubblicate in una particolare sezione del sito web. Viene comunemente utilizzato per creare elenchi, feed e abilitare casi d’uso di ricerca e filtro per pagine o frammenti di contenuto.
AEM mantiene questo indice in un foglio di calcolo e offre l’accesso ad esso utilizzando JSON. Per ulteriori informazioni, vedere il documento Fogli di calcolo e JSON.
Introdurremo il concetto di creazione di un indice di query visualizzando prima una cartella di lavoro di Excel o un foglio di calcolo di Google. Se si dispone già di una definizione di query personalizzata in un file denominato helix-query.yaml nell'archivio GitHub, non sarà più possibile creare gli indici in questo modo. Ogni nuovo indice dovrà essere aggiunto manualmente a helix-query.yaml.
Impostazione di un indice di query iniziale
In questa sezione verrà creato un indice di query nella cartella principale che indicizzerà tutti i documenti nel backend.
- Dopo aver configurato
fstab.yamlcon un punto di montaggio che punta al sito SharePoint o all'unità Google, passare alla cartella principale. - A seconda del backend, creare una cartella di lavoro denominata
query-index.xlsxper SharePoint o un foglio di calcolo denominatoquery-indexper Google Drive. - Creare un foglio denominato
raw_indexin tale foglio di calcolo o cartella di lavoro.
Impostazione delle proprietà da aggiungere all'indice
- Nel documento
query-indexaggiungere una riga di intestazione e nella prima colonna aggiungerepathcome nome di intestazione. - Nelle seguenti colonne della riga di intestazione, aggiungi tutte le altre proprietà che devono essere estratte dalla pagina HTML di cui è stato eseguito il rendering.
Nell'esempio seguente in Google Drive, i campi estratti sono title, image, description e lastModified.
Le pagine vengono indicizzate al momento della pubblicazione. Per rimuovere le pagine dall’indice, è necessario annullarne la pubblicazione.
Per scenari semplici senza una definizione di indice personalizzata, le pagine con la proprietà dei metadati robots impostata su noindex verranno automaticamente omesse dall'indicizzazione da parte di AEM. (Qui ci sono alcuni scenari speciali, per ulteriori dettagli vedi la sezione Scenari speciali per robot).
La tabella seguente riepiloga le proprietà disponibili e la posizione della pagina HTML in cui vengono estratte.
Per ogni altra intestazione aggiunta, l’indicizzatore tenterà di trovare un tag meta con un nome corrispondente.
Attivare l’indice
Per attivare l’indice, visualizza l’anteprima del foglio di calcolo utilizzando la barra laterale. Verrà creata una configurazione indice.
Verifica dell’indice
Il servizio di amministrazione dispone di un endpoint API in cui è possibile controllare la rappresentazione dell’indice della pagina. Dato il proprietario, l’archivio, il ramo e il proprietario di GitHub e il percorso di risorsa di una pagina, il suo endpoint è:
https://admin.hlx.page/index/<owner>/<repo>/<branch>/<path>
Dovresti ottenere una risposta JSON in cui il nodo dati contiene la rappresentazione dell’indice della pagina.
Debug della configurazione dell’indice
AEM CLI dispone di una funzione che consente di stampare il record di indice ogni volta che si modifica la configurazione della query e facilita la ricerca dei selettori CSS corretti:
$ aem up --print-index
Per ulteriori informazioni, consulta la documentazione GitHub di AEM CLI e guarda questo video per ulteriori informazioni su questa funzione.
Configurazione di altre configurazioni dell’indice
È possibile definire configurazioni di indice personalizzate creando helix-query.yaml. In questo modo è possibile disporre di più configurazioni di indice nello stesso helix-query.yaml, dove parti dei siti sono indicizzate in cartelle di lavoro di Excel o fogli di calcolo di Google diversi. Per ulteriori informazioni, vedere il documento Riferimento indicizzazione.
Scenari speciali per robot
Esistono alcune sfumature sul modo in cui le pagine vengono indicizzate da AEM insieme alla configurazione dell’indicizzazione per il sito. Diamo un’occhiata a:
Nelle due situazioni seguenti, l'impostazione di robots su noindex nei metadati della pagina non impedirebbe l'indicizzazione da parte di AEM:
- È stata aggiunta una colonna
robotsinquery-index.xlsx - Hai
helix-query.yamlnell'archivio Github, ovvero hai definito una definizione di indice personalizzata.
Consigli
- Se non si dispone di una definizione di indice personalizzata, si consiglia di non aggiungere una colonna
robotsal foglio indice, a meno che non si disponga di un requisito per farlo.
L'aggiunta della colonnarobotsal foglio indice causerebbe l'indicizzazione di una pagina da parte di AEM anche se potrebbero essere impostatirobotsmetadati sunoindex. - Se si dispone di una definizione di indice personalizzata, le pagine verranno indicizzate da AEM indipendentemente dall'impostazione di
robotssunoindexnei metadati della pagina. Per evitare che ciò si verifichi, è possibile utilizzare i filtri dei fogli di calcolo per omettere dall'indice le pagine con metadatirobotsimpostati sunoindex. Per ulteriori dettagli, vedere la sezione "Enforcementnoindexconfiguration with custom index definitions" di seguito.
Applicazione della configurazione "noindex" con le definizioni di indice personalizzate
Se sono state definite definizioni di indice personalizzate in helix-query.yaml, l'impostazione della proprietà robots su noindex non impedisce l'indicizzazione delle pagine. Per applicare la configurazione noindex a tali situazioni, eseguire le operazioni seguenti:
- Crea un foglio denominato "
helix-default" inquery-index.xlsx. In seguito, il foglio di calcoloquery-index.xlsxdeve avere 2 fogli“raw_index" e“helix-default". Il foglio“raw_index" deve contenere tutti i dati indicizzati. - Modifica
helix-query.yamlpersonalizzato (deve trovarsi nell'archivio Github del progetto) e aggiungi la proprietàrobotsin modo che venga indicizzato. - Ora imposta il foglio
“helix-defaultnel foglio di calcoloquery-index.xlsxin modo che venga compilato automaticamente utilizzando la formula di Excel che garantisce che tutte le righe inraw_indexcon la proprietàrobotsimpostata comenoindexnon vengano copiate nel fogliohelix-default. È possibile eseguire l'operazione utilizzando una formula di Excel come=FILTER(Table1,NOT(Table1[robots]="noindex")) - Ora il foglio predefinito a elica contiene solo le righe di
raw_indexper le quali la proprietàrobotsnon è impostata sunoindex. - Assicurati di pubblicare le pagine da indicizzare.
- Ora, se recuperi l'indice come di consueto:
https://<branch>--<repo>-<org>.hlx.page/query-index.json, otterrai solo i dati dal fogliohelix-default, ovvero le voci che non sono esplicitamente escluse dall'indicizzazione tramite la proprietàrobotimpostata comenoindex.