Preparazione dei dati per 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à.

Preparazione dei dati per Amazon CloudSearch

Prima di poterli caricare nel tuo dominio di ricerca per l'indicizzazione, i dati devono essere formattati in JSON o XML. Ogni voce che vuoi poter ricevere come risultato di ricerca viene rappresentata come documento. Ogni documento ha un ID univoco e uno o più campi che contengono i dati che desideri cercare e ricevere nei risultati. Questi campi di documento vengono utilizzati per compilare i campi dell'indice che configuri per il tuo dominio. Per ulteriori informazioni, consulta configure indexing options.

L'argomento Creating Document Batches descrive come formattare i dati. Per una descrizione dettagliata degli schemi JSON e XML di Amazon CloudSearch consulta laDocument Service API.

Mappatura dei dati dei documenti ai campi dell'indice in Amazon CloudSearch

Per popolare i campi nell'indice, Amazon CloudSearch legge i dati dai campi di documento corrispondenti. Ogni campo specificato nei dati dei documenti devono essere configurati nelle opzioni di indicizzazione. I documenti possono contenere un sottoinsieme di capi configurati per il dominio (non è necessario che ogni documento contenga tutti i campi). Inoltre, puoi popolare campi aggiuntivi nell'indice copiando i dati da un campo all'altro. In questo modo, puoi utilizzare gli stessi dati di origine in modi differenti configurando diverse opzioni per i campi.

Un campo di array come text-array può contenere fino a 1000 valori. Al momento della ricerca, il documento viene restituito come occorrenza se qualcuno di questi valori corrisponde alla query di ricerca.

Creazione di batch di documenti in Amazon CloudSearch

Importante

Prima di caricare i dati in un dominio Amazon CloudSearch, segui queste linee guida:

  • Raggruppare documenti inBatchprima di caricarli. Il caricamento continuo di batch costituiti da un solo documento ha un enorme impatto negativo sulla velocità con cui Amazon CloudSearch può elaborare i tuoi aggiornamenti. Creare invece batch il più vicino possibile al limite e caricarli meno frequentemente. Per ulteriori informazioni sulle dimensioni massime del batch e sulla frequenza di caricamento, vedereComprendere CloudSearch i limiti di Amazon.

  • Gli endpoint di ricerca e il documento di un dominio rimangono invariati per tutta la durata del dominio. Dovresti memorizzare gli endpoint nella cache invece di recuperarli prima di ciascuna richiesta di ricerca o caricamento. Esecuzione di query sul servizio di configurazione di Amazon CloudSearch chiamandoaws cloudsearch describe-domainsoppureDescribeDomainsprima che ogni richiesta possa probabilmente portare a una limitazione delle richieste.

Puoi creare batch di documenti per descrivere i dati che vuoi rendere ricercabili. Quando invii batch di documenti a un dominio, i dati vengono indicizzati automaticamente in base alle opzioni di indicizzazione del dominio. La console di Amazon CloudSearch è in grado di generare automaticamente batch di documenti a partire da una varietà di documenti di origine.

Un batch di documenti è una raccolta di operazioni di aggiunta ed eliminazione che rappresentano i documenti che desideri aggiungere, aggiornare o eliminare da un tuo dominio. I batch possono essere descritti in formato JSON o XML. Per informazioni sulle dimensioni massime dei batch e dei documenti, consultare Comprendere CloudSearch i limiti di Amazon.

Per ottenere le migliori prestazioni di caricamento possibile, raggruppa le operazioni di aggiunta ed eliminazione in batch con dimensioni vicine a quelle massime consentite. L'invio di grandi volumi di batch di documenti singoli al servizio documenti può aumentare i tempi necessari a rendere visibili le modifiche nei risultati di ricerca. Se devi caricare una grande quantità di dati, puoi inviare batch in parallelo. Il numero di uploader simultanei che puoi utilizzare dipende dal tipo di istanza di ricerca. Puoi pre-dimensionare caricamenti in blocco impostando l'opzione del tipo di istanza desiderata per il tuo dominio. Per ulteriori informazioni, consulta Configurazione delle opzioni di scalabilità in Amazon CloudSearch.

Per ogni documento in un batch, devi specificare quanto segue:

  • L'operazione da eseguire: aggiunta o eliminazione.

  • Un ID univoco per il documento. Un ID documento può contenere qualsiasi lettera o numero e i seguenti caratteri: _ - = #;:/? @ &. Gli ID di documento devono avere una lunghezza compresa fra 1 e 128 caratteri.

  • Una coppia nome-valore per ogni campo di documento. Per specificare il valore di un campo latlon, specifica la latitudine e la longitudine come elenco separato da virgole; ad esempio, "location_field": "35.628611,-120.694152". Quando specifichi i documenti nel formato JSON, il valore di un campo non può essere null. Tuttavia, puoi omettere completamente il campo.

Ad esempio, il seguente batch JSON aggiunge un documento ed elimina un documento:

[ {"type": "add", "id": "tt0484562", "fields": { "title": "The Seeker: The Dark Is Rising", "directors": ["Cunningham, David L."], "genres": ["Adventure","Drama","Fantasy","Thriller"], "actors": ["McShane, Ian","Eccleston, Christopher","Conroy, Frances", "Crewson, Wendy","Ludwig, Alexander","Cosmo, James", "Warner, Amelia","Hickey, John Benjamin","Piddock, Jim", "Lockhart, Emma"] } }, {"type": "delete", "id": "tt0484575" } ]

Lo stesso batch formattato in XML ha il seguente aspetto:

<batch> <add id="tt0484562"> <field name="title">The Seeker: The Dark Is Rising</field> <field name="directors">Cunningham, David L.</field> <field name="genres">Adventure</field> <field name="genres">Drama</field> <field name="genres">Fantasy</field> <field name="genres">Thriller</field> <field name="actors">McShane, Ian</field> <field name="actors">Eccleston, Christopher</field> <field name="actors">Conroy, Frances</field> <field name="actors">Ludwig, Alexander</field> <field name="actors">Crewson, Wendy</field> <field name="actors">Warner, Amelia</field> <field name="actors">Cosmo, James</field> <field name="actors">Hickey, John Benjamin</field> <field name="actors">Piddock, Jim</field> <field name="actors">Lockhart, Emma</field> </add> <delete id="tt0484575" /> </batch>

Amazon CloudSearch accetta un batch solo se tutti i documenti in esso contenuti sono validi. Puoi verificare la validità dei dati in formato JSON o XML utilizzando strumenti come xmllint e jsonlint.

Entrambi i batch JSON e XML possono contenere solo caratteri UTF-8 che sono validi in XML. I caratteri validi sono tabulazione caratteri di controllo (0009), ritorno a capo (000D) e avanzamento riga (000A), nonché i caratteri legali Unicode e ISO/IEC 10646. FFFE, FFFF e i blocchi surrogati D800–DBFF e DC00–DFFF non sono validi e causano errori. Per ulteriori informazioni, consultare Extensible Markup Language (XML) 1.0 (Fifth Edition).) Puoi utilizzare la seguente espressione regolare per individuare i caratteri non validi e poterli rimuovere: /[^\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD]/ .

Quando formatti i dati in JSON, le virgolette (") e le barre rovesciate (\) all'interno dei valori di campo devono essere precedute da una barra rovesciata. Ad esempio:

"title":"Where the Wild Things Are" "isbn":"0-06-025492-0" "image":"images\\covers\\Where_The_Wild_Things_Are_(book)_cover.jpg" "comment":"Sendak's \"Where the Wild Things Are\" is a children's classic."

Quando formatti i dati in XML, le E commerciali (&) e i simboli di minore (<) nei valori di campo devono essere rappresentati con i corrispondenti riferimenti alle entità (&amp; e &lt;).

Ad esempio:

<field name="title">Little Cow &amp; the Turtle</field> <field name="isbn">0-84466-4774</field> <field name="image">images\covers\Little_Cow_&amp;_the_Turtle.jpg</field> <field name="comment">&lt;insert comment></field>

Se disponi di grandi blocchi di contenuti generati dagli utenti, è probabile che desideri includere l'intero campo in una sezione CDATA piuttosto che sostituire ogni occorrenza con l'intero riferimento. Ad esempio:

<field name="comment"><![CDATA[Monsters & mayhem--what's not to like! ]]>

Aggiunta e aggiornamento di documenti in Amazon CloudSearch

Un'operazione di aggiunta specifica un nuovo documento che vuoi aggiungere all'indice o un documento esistente che vuoi aggiornare.

Quando aggiungi o aggiorni un documento, devi specificarne l'ID e tutti i campi che contiene. Non hai bisogno di specificare ogni campo configurato per ogni documento (i documenti possono contenere un sottoinsieme di campi configurati). Tuttavia, ogni campo nel documento deve corrispondere a un campo configurato per il dominio.

Per aggiungere un documento a un dominio di ricerca
  1. Specificare un'operazione di aggiunta che contiene l'ID del documento che si desidera aggiungere e ciascuno dei campi in cui si desidera effettuare le ricerche o che si desidera restituisca i risultati. Se il documento esiste già, l'operazione di aggiunta lo sostituirà. Non è possibile aggiornare i campi selezionati, il documento viene sovrascritto con la nuova versione. Ad esempio, l'operazione seguente aggiunge il documento tt0484562:

    { "type": "add", "id": "tt0484562", "fields": { "title": "The Seeker: The Dark Is Rising", "directors": ["Cunningham, David L."], "genres": ["Adventure","Drama","Fantasy","Thriller"], "actors": ["McShane, Ian","Eccleston, Christopher","Conroy, Frances", "Crewson, Wendy","Ludwig, Alexander","Cosmo, James", "Warner, Amelia","Hickey, John Benjamin","Piddock, Jim", "Lockhart, Emma"] } }
  2. Includere l'operazione di aggiunta in un batch di documenti e caricare il batch nel dominio. Puoi caricare i dati tramite la console di Amazon CloudSearch o pubblicando una richiesta direttamente sull'endpoint del servizio documenti del dominio. Per ulteriori informazioni, consulta upload documents.

Eliminazione di documenti in Amazon CloudSearch

Un'operazione di eliminazione specifica un documento che vuoi rimuovere dall'indice di un dominio. Una volta che un documento viene eliminato, non potrai più ricercarlo né verrà restituito nei risultati.

Quando pubblichi gli aggiornamenti per eliminare i documenti, devi specificare ogni documento da eliminare.

Se il dominio è stato scalato per adattarsi alle dimensioni dell'indice e si elimina un numero elevato di documenti, il dominio ridimensiona la volta successiva che l'indice completo viene ricostruito. Sebbene l'indice venga ricostruito automaticamente periodicamente, per ridimensionare il più rapidamente possibile è possibile esplicitamenteEseguire l'indicizzazioneAl termine dell'eliminazione di documenti.

Nota

Per eliminare documenti, puoi caricare i batch di documenti che contengono le operazioni di eliminazione. Ti verrà addebitato il numero totale dei batch di documenti caricati nel tuo dominio di ricerca, inclusi i batch contenenti le operazioni di eliminazione. Per ulteriori informazioni sui prezzi di Amazon CloudSearch, consultaaws.amazon.com/cloudsearch/pricing/.

Per eliminare un documento da un dominio di ricerca
  1. Specificare un'operazione di eliminazione che contiene l'ID del documento che si desidera rimuovere. Ad esempio, l'operazione seguente rimuove il documento tt0484575:

    { "type": "delete", "id": "tt0484575" }
  2. Includere l'operazione di eliminazione in un batch di documenti e caricare il batch nel dominio. Puoi caricare i batch tramite la console di Amazon CloudSearch o pubblicando una richiesta direttamente sull'endpoint del servizio documenti del dominio. Per ulteriori informazioni, consulta upload documents.

  3. L'operazione di eliminazione rimuove documenti dall'indice, che pertanto non vengono visualizzati nei risultati di ricerca, ma per eliminarli completamente tali da Amazon CloudSearch, è inoltre necessarioricreare l'indice.

Trattamento dei dati di origine per Amazon CloudSearch

Per caricare i dati per l'indicizzazione, devi formattarli in JSON o XML. La console di Amazon CloudSearch fornisce un modo per generare correttamente in modo automatico JSON o XML formattati a partire da vari tipi di file comuni: CSV, testo e HTML. Puoi anche elaborare i batch formattati per l'API Amazon CloudSearch 2011-02-01 per convertirli nel formato 2013-01-01.

Per la maggior parte dei tipi di file, ogni file di origine è rappresentato da un documento separato nei formati JSON o XML generati. Se sono disponibili per il file, i metadati vengono mappati ai campi del documento corrispondenti (i campi generati dai metadati del documento variano in base al tipo di file). I contenuti del file di origine vengono analizzati in un singolo campo di testo. Se il file contiene più di 1 MB di dati, i dati mappati al campo di testo vengono troncati in modo che il documento non superi 1 MB.

I file CSV sono gestiti in modo diverso. Durante l'elaborazione di un file CSV, Amazon CloudSearch utilizza i contenuti della prima riga per definire i campi del documento e crea un documento separato per ogni riga successiva. Se è presente un intestazione di colonna denominata docid, i valori di quella colonna vengono utilizzati come ID dei documenti. Se necessario, i valori di docid vengono normalizzati per risultare conformi al set di caratteri consentito. Un ID documento può contenere qualsiasi lettera o numero e i seguenti caratteri: _ - = #;:/? @ &. Se non è presente alcuna colonna docid, per ogni documento viene generato un ID univoco basato sul nome del file e il numero di righe.

Se carichi più tipi di file, i file CSV vengono analizzati riga per riga, mentre gli altri file vengono trattati come singoli documenti.

Nota

Al momento, soltanto i file CSV vengono analizzati per estrarre automaticamente i dati dei campi personalizzati e generare più documenti.

Puoi anche elaborare i dati archiviati in DynamoDB. Amazon CloudSearch rappresenta ogni lettura di voce della tabella come documento separato.

Elaborazione dei dati di origine utilizzando Amazon CloudSearch Console

Quando si caricano documenti di origineo DynamoDBtramite la console di Amazon CloudSearch, vengono convertiti automaticamente nel formato Amazon CloudSearch JSON di Amazon. Puoi utilizzare la console per caricare fino a 5 MB di dati per volta. Se lo desideri, puoi scaricare il file JSON generato. Per ulteriori informazioni su come caricare i dati tramite la console, consulta upload documents e Uploading DynamoDB Data.