Utilizzo di campi dinamici in Amazon CloudSearch - Amazon CloudSearch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di campi dinamici in Amazon CloudSearch

I campi dinamici consentono di indicizzare i documenti senza sapere esattamente in anticipo quali campi contengono. Ad esempio, considera il caso in cui si desideri eseguire la ricerca in un set di prodotti. È possibile che non si conoscano i nomi di tutti i possibili attributi di prodotto in tutte le categorie di prodotti, ma si possono strutturare i dati in modo che tutti gli attributi di testo vengano memorizzati in campi che terminano in _te tutti i valori interi vengano memorizzati in campi che terminano in _i. Con i campi dinamici, è possibile mappare i campi di attributo al tipo di campo appropriato senza dover configurare un campo per ogni possibile attributo. Ciò permette di ridurre la configurazione che è necessario eseguire in anticipo ed elimina la necessità di modificare la configurazione del dominio ogni volta che viene aggiunto un prodotto con un nuovo attributo. Puoi anche utilizzare i campi dinamici per ignorare del tutto i nuovi campi mappandoli a un campo che non è ricercabile o restituibile.

Configurazione dei campi dinamici in Amazon CloudSearch

È possibile definire un campo come campo dinamico specificando un carattere jolly (*) come primo, ultimo o unico carattere del nome. I nomi dei campi dinamici devono iniziare o terminare con un carattere jolly (*). Non sono supportati caratteri jolly multipli e caratteri jolly incorporati all'interno di una stringa.

Un nome di campo dinamico definisce un modello. Il carattere jolly corrisponde a zero o più caratteri arbitrari. I campi non riconosciuti che corrispondono al modello vengono configurati con le opzioni di indicizzazione del campo dinamico. I campi dell'indice normali hanno la precedenza sui campi dinamici. Se il nome di un campo di documento corrisponde sia a un campo dell'indice normale sia a un modello di campo dinamico, viene mappato al campo dell'indice normale.

Nota

Le opzioni che puoi configurare per i campi dinamici sono le stesse dei campi statici. Analogamente, i nomi di campo dei documenti che corrispondono a un campo dinamico devono soddisfare tutti i criteri dei nomi di campo statici.

Ad esempio, se si stabilisce la convenzione di denominazione per cui viene aggiunto _i al nome di un nuovo campo int, è possibile definire un campo dinamico con il modello *_i che imposta il tipo di campo su int e configura un set di opzioni di indicizzazione predefinite per i nuovi campi int. Quando si aggiunge un campo, ad esempio review_rating_i, questo viene configurato in base alle opzioni *_i e indicizzato automaticamente.

Se un campo di documento corrisponde a più di un modello di campo dinamico, viene utilizzato il modello corrispondente più lungo. Se i modelli sono della stessa lunghezza, viene utilizzato il campo dinamico che viene prima nell'elenco alfabetico dei nomi di campo.

È possibile definire * come campo dinamico in modo che ci sia corrispondenza con i campi non mappati a campi definiti esplicitamente o con modelli di campi dinamici più lunghi. Questa funzione è utile se si intende semplicemente ignorare i campi non riconosciuti. Per ulteriori informazioni, consulta Utilizzo di un campo dinamico per ignorare i campi non riconosciuti in Amazon CloudSearch.

I campi dinamici vengono conteggiati nel numero totale di campi definiti per un dominio. Un dominio può avere un massimo di 200 definizioni di campo, che includono i campi dinamici. Tuttavia, il modello definito da un singolo campo dinamico generalmente corrisponde a più campi di documento, pertanto il numero totale di campi dell'indice può superare i 200. Per ulteriori informazioni, consulta Comprendere CloudSearch i limiti di Amazon. Quando utilizzi i campi dinamici, ricorda che aumentare in modo significativo il numero di campi dell'indice può inficiare le prestazioni delle query.

Aggiungere nuovi campi alla configurazione di dominio può influenzare il modo in cui i campi generati dinamicamente vengono convalidati durante l'indicizzazione. Se la convalida non riesce, non sarà possibile eseguire l'indicizzazione. Se ad esempio si definisce un campo dinamico denominato *_new e si caricano documenti che contengono un campo denominato rating_new, verrà aggiunto all'indice il campo rating_new. Se quindi si configura esplicitamente un campo denominato rating_new, quando si esegue l'indicizzazione viene utilizzata la nuova configurazione per convalidare i contenuti del campo rating_new del documento. Se *_new viene configurato come campo text e si configura rating_new come campo int, la convalida non riesce se i campi rating_new esistenti contengono dati non interi.

Per ulteriori informazioni sulla configurazione dei campi dell'indice, consultare configure indexing options.

Utilizzo di un campo dinamico per ignorare i campi non riconosciuti in Amazon CloudSearch

Amazon CloudSearch richiede di configurare un campo indice per ogni campo presente nei documenti oggetto di indicizzazione. In alcuni casi, tuttavia, può essere utile indicizzare un determinato set di campi e semplicemente ignorare tutto il resto. È possibile utilizzare campi dinamici per ignorare tutti i campi non riconosciuti definendo un campo letterale denominato * e disabilitando tutte le opzioni di indicizzazione per il campo. I campi non riconosciuti ereditano tali opzioni e vengono aggiunti al dominio, tuttavia i relativi contenuti non saranno ricercabili o restituibili, pertanto avranno il minimo impatto sulla dimensione dell'indice (ma vengono conteggiati nel numero totale di campi configurati per il dominio). Analogamente, è possibile ignorare in modo selettivo i campi che corrispondono a un determinato modello, ad esempio *_n.

Per ignorare i campi non riconosciuti
  1. Configurare i campi che si desidera indicizzare, restituire nei risultati o in cui i desidera eseguire ricerche.

  2. Aggiungere un campo dinamico che corrisponda agli altri che si trovano nei documenti e disabilitare tutte le opzioni di indicizzazione che li riguardano:

    • Specificare * come nome del campo, senza alcuna stringa di prefisso o di suffisso. (È anche possibile specificare un modello più specifico per disabilitare i campi in modo selettivo).

    • Impostare il tipo di campo suliterale disabilitare lesearch,facet, ereturnOpzioni. La dimensione massima di un campo letterale è 4.096 punti di codice Unicode.

Poiché i modelli di campi dinamici più lunghi vengono confrontati per primi, è comunque possibile utilizzare i campi dinamici per configurare le opzioni per i campi che si desidera utilizzare. I campi che non sono associati a un campo normale dell'indice o a un campo dinamico più lungo corrisponderanno al modello *.

Nota

Quando si crea un campo dinamico con il nome *, l'indice potrebbe contenere qualsiasi nome di campo valido. Questo significa che puoi fare riferimento a qualsiasi nome di campo valido nelle tue richieste di ricerca, indipendentemente dal fatto che esista nel tuo indice.

Ricerca nei campi dinamici in Amazon CloudSearch

È possibile fare riferimento dinamicamente ai campi generati in base al nome nelle espressioni e nelle richieste di ricerca, esattamente come per qualsiasi altro campo. Ad esempio, per cercare il campo generato dinamicamente color_t per il colore red, si utilizza il parser di query strutturate:

q=color_t:’red’&q.parser=structured

Se hai definito un campo dinamico catch-all (*) per mappare tutti i campi che non corrispondono ai campi normali o a modelli di campi dinamici più specifici, puoi specificare qualsiasi nome di campo valido nelle richieste di ricerca, indipendentemente dal fatto che il campo esista effettivamente nell'indice.

I caratteri jolly non sono supportati all'interno dei nomi di campo, pertanto non è possibile fare riferimento al campo dinamico stesso. Ad esempio, specificando q=*_t:’red’ viene restituito un errore.

Le opzioni che un campo generato dinamicamente eredita dalla configurazione del campo dinamico controllano il modo in cui è possibile utilizzare il campo nelle richieste di ricerca, ad esempio, se è possibile eseguire ricerche, ottenere facet o evidenziazioni, ordinare o restituirvi risultati. Nei campi generati dinamicamente è possibile eseguire ricerche esplicitamente, i campi dinamici NON sono inclusi nei campi in cui per impostazione predefinita vengono eseguite le ricerche quando si utilizza il parser di query semplice o non si specifica un campo durante la ricerca con il parser di query strutturate.

È possibile specificare campi dinamici come origini per altri campi se il campo di destinazione è una matrice. Un attributo di origine di un campo supporta i caratteri jolly, pertanto è possibile specificare un modello che corrisponda a un gruppo di campi dinamici. Ad esempio, per eseguire la ricerca in tutti i campi generati dal campo dinamico *_t, è possibile creare un campo denominato all_t_fields e impostare il rispettivo attributo di origine su *_t. In questo modo i contenuti di tutti i campi i cui nomi terminano in _t vengono copiati in all_t_fields. La ricerca in questo campo, tuttavia, comporta la ricerca in tutti i campi che corrispondono al modello, non solo nei campi generati dinamicamente.

Per ulteriori informazioni sulla creazione e l'invio di richieste di ricerca, vedi Ricerca nei tuoi dati con Amazon CloudSearch.