Invio di richieste di ricerca a un dominio 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à.

Invio di richieste di ricerca a un dominio Amazon CloudSearch

Ti consigliamo di utilizzare uno degli SDK AWS o di AWS CLI inviare richieste di ricerca. Gli SDK AWS CLI gestiscono la firma delle richieste per te e forniscono un modo semplice per eseguire tutte le CloudSearch azioni di Amazon. Puoi anche utilizzare Search Tester nella CloudSearch console Amazon per cercare i tuoi dati, sfogliare i risultati e visualizzare gli URL di richiesta generati e le risposte JSON e XML. Per ulteriori informazioni, consulta Ricerca con il test di ricerca.

Importante
  • Gli endpoint di ricerca non cambiano: il documento e gli endpoint di ricerca di un dominio rimangono gli stessi per tutta la durata del dominio. Dovresti memorizzare gli endpoint nella cache invece di recuperarli prima di ciascuna richiesta di ricerca o caricamento. È probabile che interrogare il servizio di CloudSearch configurazione Amazon chiamando aws cloudsearch describe-domains o DescribeDomains prima di ogni richiesta comporti una limitazione delle richieste.

  • Gli indirizzi IP cambiano: l'indirizzo IP del tuo dominio può cambiare nel tempo, quindi è importante memorizzare nella cache l'endpoint come mostrato nella console e restituito dal aws cloudsearch describe-domains comando anziché dall'indirizzo IP. Inoltre, dovresti risolvere nuovamente il DNS dell'endpoint in un indirizzo IP con regolarità. Per ulteriori informazioni, vedere Impostazione del TTL JVM per le ricerche dei nomi DNS.

Ad esempio, la richiesta seguente invia una semplice ricerca testuale per wolverine utilizzare AWS CLI e restituisce solo gli ID dei documenti corrispondenti.

aws cloudsearchdomain --endpoint-url http://search-movies-y6gelr4lv3jeu4rvoelunxsl2e.us-east-1.cloudsearch.amazonaws.com search --search-query wolverine --return _no_fields { "status": { "rid": "/rnE+e4oCAqfEEs=", "time-ms": 6 }, "hits": { "found": 3, "hit": [ { "id": "tt1430132" }, { "id": "tt0458525" }, { "id": "tt1877832" } ], "start": 0 } }

Per impostazione predefinita, Amazon CloudSearch restituisce la risposta in JSON. Puoi ottenere i risultati formattati in XML specificando il parametro. format L'impostazione del formato della risposta interessa solo le risposte alle richieste riuscite. Il formato di una risposta di errore dipende dall'origine dell'errore. Gli errori restituiti dal servizio di ricerca vengono sempre restituiti in JSON. Gli errori 5xx dovuti a timeout del server e ad altri problemi di routing delle richieste vengono restituiti in formato XML.

Nota

Gli SDK AWS restituiscono i campi come array. I campi a valore singolo vengono restituiti come array con un elemento, ad esempio:

"fields": { "plot": ["Katniss Everdeen reluctantly becomes the symbol of a mass rebellion against the autocratic Capitol."] }

Per scopi di sviluppo e test, puoi consentire l'accesso anonimo al servizio di ricerca del tuo dominio e inviare richieste HTTP GET o POST non firmate direttamente all'endpoint di ricerca del tuo dominio. In un ambiente di produzione, limita l'accesso al tuo dominio a ruoli, gruppi o utenti IAM specifici e invia richieste firmate utilizzando gli SDK AWS oAWS CLI. Per informazioni sul controllo degli accessi per Amazon CloudSearch, consultaconfigure access policies. Per ulteriori informazioni sulla firma delle richieste, consulta Signing AWS API Requests.

Puoi utilizzare qualsiasi metodo desideri per inviare richieste HTTP direttamente all'endpoint di ricerca del tuo dominio: puoi inserire l'URL della richiesta direttamente in un browser Web, utilizzare cURL per inviare la richiesta o generare una chiamata HTTP utilizzando la tua libreria HTTP preferita. Per specificare i criteri di ricerca, specificate una stringa di query che specifica i vincoli per la ricerca e il risultato che desiderate ottenere nella risposta. La stringa di query deve essere codificata come URL. La dimensione massima di una richiesta di ricerca inviata tramite GET è di 8190 byte, inclusi il metodo HTTP, l'URI e la versione del protocollo. Puoi inviare richieste più grandi utilizzando HTTP POST; tuttavia, tieni presente che le richieste grandi e complesse richiedono più tempo per essere elaborate e hanno maggiori probabilità di scadere. Per ulteriori informazioni, consulta Ottimizzazione delle prestazioni delle richieste di ricerca in Amazon CloudSearch.

Ad esempio, la richiesta seguente invia una query strutturata al search-movies-rr2f34ofg56xneuemujamut52i.us-east-1.cloudsearch.amazonaws.com dominio e ottiene il contenuto del title campo.

http://search-movies-rr2f34ofg56xneuemujamut52i.us-east-1.cloudsearch. amazonaws.com/2013-01-01/search?q=(and+(term+field%3Dtitle+'star') (term+field%3Dyear+1977))&q.parser=structured&return=title
Importante

I caratteri speciali nella stringa di query devono essere codificati come URL. Ad esempio, è necessario codificare l'=operatore in una query strutturata come:. %3D (term+field%3Dtitle+'star') Se non codifichi i caratteri speciali quando invii la richiesta di ricerca, riceverai un InvalidQueryString errore.