Sitecore 9.1: come aggiungere un prefisso o rinominare gli indici di Ricerca di Azure

Il provider Solr di Sitecore dispone da tempo di un modo out of the box per supportare la ridenominazione dei core Solr consentendo il riutilizzo di un’istanza del server Solr, ma non esiste nulla di simile per Ricerca di Azure.

Perché dovrei rinominare o aggiungere un prefisso a un indice?

Mi vengono in mente alcuni motivi:

Implementazioni per versioni precedenti di Sitecore

Innanzitutto noterò che questa implementazione è solo per Sitecore 9.1.0 poiché le API sono cambiate molto da Sitecore 9.0.x. Se stai cercando un’implementazione che funzioni in Sitecore 9.0.x, consulta questo articolo.

Cosa è cambiato in Sitecore 9.1.0?

Nelle versioni precedenti il ​​nome dell’indice corrente era memorizzato nella tabella delle proprietà del database. Questo è stato modificato in Sitecore 9.1.0 (ed è anche disponibile una patch dal supporto per 9.0.2) per usare un catalogo di indici nell’istanza di Ricerca di Azure stessa. Ciò era dovuto a problemi con l’implementazione basata sul database che non raccoglieva le modifiche al nome dell’indice mentre l’opzione Ricerca di Azure alla ricostruzione è abilitata.

Ok andiamo a questo …

Questa soluzione richiede codice personalizzato.

3. Aggiungi la seguente configurazione e modifica se necessario per qualsiasi indice personalizzato che hai

Dopo aver distribuito quanto sopra e avviato una ricostruzione di sitecore-master-index, posso vedere questo nel mio caso:

Ulteriori informazioni

Non ho completamente testato che funzioni in tutte le situazioni e, come avrai notato, ho disabilitato l’interruttore dell’indice sulla funzionalità di ricostruzione poiché non ne ho bisogno per scenari in cui avrei bisogno di anteporre i nomi degli indici.

Tieni presente che ho incluso la modifica delle strategie dell’indice web. Non è necessario per questo esempio, ma lo includo perché penso sia una cosa importante da configurare.

Non consiglierei di utilizzare questo codice in produzione poiché se dovessi riscontrare problemi, l’assistenza Sitecore sarà nel pieno dei suoi diritti di rifiutarsi di supportarlo.

Penso che questa soluzione probabilmente non funzionerà nelle versioni future di Sitecore 9.x poiché credo che quest’area del codice di Sitecore sia in evoluzione al momento della scrittura. Tuttavia, cercherò di aggiornare questo post una volta che verranno rilasciate nuove versioni di Sitecore.