Ottimizzazione delle prestazioni delle richieste di ricerca 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à.

Ottimizzazione delle prestazioni delle richieste di ricerca in Amazon CloudSearch

Durante l'elaborazione, le richieste di ricerca possono richiedere un uso intensivo delle risorse, influendo sulle prestazioni e i costi di esecuzione del dominio di ricerca. In generale, le ricerche che restituiscono un grande volume di occorrenze e le query strutturate complesse richiedono un uso ancora più massiccio delle risorse rispetto alle query di testo semplici, che restituiscono una piccola percentuale dei documenti presenti nel dominio di ricerca.

Qualora si verificassero rallentamenti dei tempi di risposta, frequenti errori interni del server (tipicamente 507 o 509) o un aumento del consumo di ore di istanze nel dominio di ricerca senza un sostanziale aumento del volume di dati ricercati, puoi ottimizzare le richieste di ricerca per contribuire a ridurre i costi di elaborazione. Questa sezione esamina cosa cercare e le fasi da seguire per ottimizzare le richieste di ricerca.

Analisi della latenza delle query

Prima di ottimizzare le tue richieste, devi analizzare le prestazioni correnti delle ricerche. Registra le tue richieste di ricerca e i tempi di risposta, in modo da poter capire quali richieste richiedono più tempo per l'elaborazione. Le ricerche lente possono influire in modo sproporzionato sulle prestazioni complessive vincolando le risorse del tuo dominio di ricerca. L'ottimizzazione delle richieste di ricerca più lente consente di accelerare tutte le tue ricerche.

Riduzione del numero di occorrenze

La latenza delle query è direttamente proporzionale al numero di documenti corrispondenti. Le ricerche che restituiscono la maggior parte dei documenti solitamente sono le più lente.

Eliminando i due tipi di ricerca che solitamente restituiscono un elevato numero di documenti corrispondenti, puoi migliorare notevolmente le prestazioni complessive:

  • Le query che restituiscono ogni documento nel corpus (matchall). Sebbene questo tipo di ricerca sia un modo utile per elencare tutti i documenti nel tuo dominio, si tratta di una query a uso intensivo delle risorse. Se disponi di molti documenti, non solo si potrebbe verificare il time out delle altre richieste, ma potrebbe verificarsi anche per la richiesta in corso.

  • Le ricerche di prefissi (caratteri jolly) solo con uno o due caratteri specificati. Se utilizzi questo tipo di ricerca per offrire risultati istantanei durante la digitazione, attendi finché l'utente non ha digitato almeno due caratteri prima di iniziare a inviare le richieste e visualizzare le corrispondenze possibili.

Per ridurre il numero di documenti che corrispondono alle tue richieste, puoi anche procedere nel modo seguente:

  • Elimina le parole irrilevanti dal tuo corpus affinché non vengano utilizzate per la ricerca. Il modo più semplice per farlo è aggiungerle al dizionario di elenco delle stopword per gli schemi di analisi che stai utilizzando. In alternativa, puoi pre-elaborare i dati per rimuovere le parole irrilevanti, azione che ha anche il vantaggio di ridurre le dimensioni dell'indice e di conseguenza i costi.

  • Filtra in modo esplicito i risultati in base al valore di un campo particolare utilizzando il parametro fq.

Se le richieste restituiscono ancora molti documenti, puoi ridurre la latenza riducendo al minimo l'elaborazione del set di risultati:

  • Riduci le informazioni sui facet della richiesta. La generazione dei numeri di facet si aggiunge al tempo necessario a elaborare la richiesta e aumenta la probabilità di timeout di altre richieste. Se richiedi le informazioni sui facet, tieni presente che più facet specifichi e maggiore sarà il tempo di elaborazione della richiesta.

  • Evita di utilizzare espressioni personalizzate per l'ordinamento. L'elaborazione aggiuntiva necessaria per ordinare i risultati aumenta la probabilità di time out delle richieste. Se devi personalizzare la modalità di ordinamento dei risultati, solitamente risulta più veloce utilizzare una campo che non un'espressione.

Tieni presente che la restituzione di una grande quantità di dati nei risultati di ricerca può aumentare i tempi di trasporto e influire sulla latenza delle query. Riduci al minimo il numero dei campi di restituzione che utilizzi per migliorare le prestazioni e ridurre le dimensioni dell'indice.

Semplificazione delle query strutturate

Maggiore è il numero di clausole nei criteri delle query e maggiore sarà il tempo richiesto per la loro elaborazione.

Se rilevi query strutturate complesse che non funzionano adeguatamente, devi individuare un modo per ridurre il numero delle clausole. In alcuni casi, potresti semplicemente essere in grado di impostare un limite o riformulare la query. In altri casi, potresti dover modificare la configurazione del tuo dominio per tenere conto delle query più semplici.