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à.
Creazione di query composte in Amazon CloudSearch
Puoi utilizzare il parser delle query strutturate per combinare le espressioni di corrispondenza utilizzando gli operatori booleani and
, or
e not
. Per selezionare il parser delle query strutturate, includi q.parser=structured
nella query. Gli operatori delle query strutturate vengono specificati come operatori prefisso. La sintassi è:
(and boost=N EXPRESSION1 EXPRESSION2 ... EXPRESSIONn)
(or boost=N EXPRESSION1 EXPRESSION2 ... EXPRESSIONn)
(not boost=N EXPRESSION)
Ad esempio, nella seguente query vengono rilevati tutti i film nel set di dati di esempio contenente star nel titolo e Harrison Ford o William Shatner appaiono nel campo actors
, ma non Zachary Quinto.
(and title:'star' (or actors:'Harrison Ford' actors:'William Shatner')(not actors:'Zachary Quinto'))
Quando utilizzi gli operatori delle query strutturate, devi specificare il nome dell'operatore, le relative opzioni e l'espressione di corrispondenza a cui viene applicato l'operatore, (OPERATOR OPTIONS EXPRESSION)
. L'espressione di corrispondenza può essere una stringa di testo semplice oppure una sottoclausola della query composta. Qualsiasi opzione deve essere specificata prima dei termini. Ad esempio, (and (not field=genres 'Sci-Fi')(or (term field=title boost=2 'star')(term field=plot 'star')))
.
Le parentesi controllano l'ordine di valutazione delle espressioni. Se è racchiusa tra parentesi, un'espressione viene valutata per prima, quindi il valore risultante viene utilizzato nella valutazione della parte rimanente della query composta.
Importante
I caratteri speciali nella stringa di query devono essere codificati in formato URL. Ad esempio, devi codificare l'=
operatore in una query strutturata come%3D
:). (term+field%3Dtitle+'star'
Amazon CloudSearch restituisce un InvalidQueryString
errore se i caratteri speciali non sono codificati nell'URL. Per un riferimento completo delle codifiche nel formato URL, consultare il documento HTML URL Encoding Reference
Ad esempio, la query seguente ricerca nel campo title
la locuzione star wars
ed esclude le corrispondenze con un valore inferiore a 2000 nel campo year
.
(and (phrase field='title' 'star wars') (not (range field=year {,2000})))
Per inviare questa richiesta di ricerca, devi codificare la stringa della query e specificare il parser di query structured
con il parametro q.parser
.
http://search-movies-rr2f34ofg56xneuemujamut52i.us-east-1.cloudsearch. amazonaws.com/2013-01-01/search?q=(and+(phrase+field='title'+'star wars')+(not+(range+field%3Dyear+{,2000})))&q.parser=structured
La sintassi delle query strutturate ti consente di combinare le ricerche rispetto a più campi. Se non specifichi un campo, la ricerca verrà effettuata in tutti i campi text
e text-array
. Ad esempio, la query seguente consente di ricercare in tutti i campi text
e text-array
il termine star e di escludere i documenti che contengono Zachary Quinto nel campo actors
.
(and 'star' (not actors:'Zachary Quinto'))
Puoi specificare un valore boost
(potenziamento) per aumentare l'importanza di un'espressione in una query composta rispetto alle altre. Il valore boost aumenta i punteggi dei documenti corrispondenti. Ad esempio, la seguente query aumenta le corrispondenze del termine star se presenti nel campo title
anziché nel campo description
.
(and (range field=year [2013,}) (or (term field=title boost=2 'star') (term field=plot 'star'))
I valori boost devono essere maggiori di zero.
Oltre aand
, and or
not
, la sintassi di ricerca CloudSearch strutturata di Amazon supporta diversi operatori specializzati:
matchall
—Corrisponde a tutti i documenti del dominio. Sintassi:matchall
.near
—Supporta interrogazioni con frasi sciatte. Il valoredistance
specifica il numero massimo di parole che possono separare le parole nella locuzione; ad esempio,(near field='plot' distance=4 'naval mutiny demonstration')
. Utilizza l'operatorenear
per consentire il rilevamento delle corrispondenze se i termini specificati si trovano vicini, ma non sono adiacenti. Per ulteriori informazioni sulle ricerche di frasi simili, consultare Ricerca di frasi. Sintassi:(near field=FIELD distance=N boost=N 'STRING')
.phrase
—Cerca una frase in unotext
otext-array
più campi, ad esempio.(phrase field="title" 'teenage mutant ninja')
Supporta il boosting dei documenti che corrispondono all'espressione. Per ulteriori informazioni sulle ricerche di frasi, consultare Ricerca di frasi. Sintassi:(phrase field=FIELD boost=N 'STRING')
.prefix
—Cerca in un campo di testo, una matrice di testo, una matrice letterale o una matrice letterale il prefisso specificato seguito da zero o più caratteri; ad esempio,.(prefix field='title' 'wait')
Supporta il boosting dei documenti che corrispondono all'espressione. Per ulteriori informazioni sulle ricerche di prefissi, consultare Ricerca di prefissi. Sintassi:(prefix field=FIELD boost=N 'STRING')
.range
—Cerca un intervallo di valori in un campo numerico, ad esempio:.(range field=year [2000,2013])
Per ulteriori informazioni sulle ricerche di intervalli, consultare Ricerca di un intervallo di valori. Sintassi:(range field=FIELD boost=N RANGE)
.term
—Cerca un singolo termine o valore in qualsiasi campo; per esempio:.(and (term field=title 'star')(term field=year 1977))
Sintassi:(term field=FIELD boost=N 'STRING'|VALUE)
.
Per ulteriori informazioni sulla ricerca di tipi particolari di dati, consultare le sezioni seguenti. Per ulteriori informazioni sulla sintassi di ricerca strutturata, consultare Sintassi di ricerca strutturata.