2016-03-10 6 views
11

In che modo sono phrase e term diversi in una query Structured?Qual è la differenza tra frase e termine nelle query strutturate?

Ho questo dati in mio dominio CloudSearch:

{ 
    "guid": 9, 
    "operating_systems": [ 
     "12345", "123" 
    ], 
    "manufacturer": "sealand", 
    "model": "gaming tree whale plum", 
    "identifier": "gaming tree whale plum", 
    "type": "computer", 
    "created_at": "1982-10-14T14:43:54Z" 
} 

"model" è scrivere text, "identifier" è di tipo literal, "created_at" è scrivere date.

Facciamo un paio di domande:

(phrase field=model 'tree whale')    match 
(phrase field= identifier 'tree whale')   no match 
(phrase 'tree whale')       match 
(phrase field=created_at '1982-10-14T14:43:54Z') match (this shouldn't match according to docs) 

(term field=model 'tree whale')    match 
(term field= identifier 'tree whale')   no match 
(term 'tree whale')       match 
(term field=created_at '1982-10-14T14:43:54Z') match 

C'è qualcosa che posso fare con phrase che non posso fare con term e viceversa?

+0

'phrase' corrisponde nell'ordine esatto e' term' corrisponde se il campo contiene il termine di ricerca ovunque. Sono possibili "frasi sciatte". Stai cercando altre differenze specifiche? – jbird

risposta

1

C'è poca differenza tra la sintassi e l'utilizzo di term VS phrase. Tuttavia, il comportamento di ricerca nella gestione phrases può essere personalizzato in modi terms non può, che può essere utilizzato per migliorare le prestazioni:

  • operatori ammessi
  • phraseFields
  • phraseSlop

Terms sono destinati per la corrispondenza campi di testo, dove phrases sono destinati a ricerche più complesse.

Salta la documentazione web, e basta leggere tutti i PDF: http://docs.aws.amazon.com/cloudsearch/latest/developerguide/cloudsearch-dg.pdf

+0

Quando dici * le frasi sono pensate per ricerche più complesse * cosa intendi? Avrei pensato che le frasi sono più rigide e meno flessibili quando si tratta di cercare, quindi nel complesso si potrebbero fare cose meno complesse con loro. – apokryfos

+0

Posso solo immaginare, come con qualsiasi architettura una maggiore rigidità consente prestazioni migliori, oltre a una maggiore flessibilità dei componenti che dipendono da esso. In definitiva, le frasi diventano più flessibili solo quando si considerano le implicazioni di alias e termini equivalenti. {citrus, lemon, orange} {large, big, huge} '(frase" big lemon ") corrisponderebbe a tutte le possibili combinazioni. –

+0

con 'term' non controllerà ogni parola, controllerà solo il tutto. –

1

Nel caso in cui qualcuno si sta chiedendo, scopre che una ricerca per frase corrisponde l'intera frase, mentre una ricerca termine corrisponde ai termini che può essere un frase ma possono essere parole sparse sul documento. Esempio:

Testo:

"model": gaming tree whale plum 

Il seguente stiva:

(phrase field=model 'tree whale')    match 
(phrase field=model 'tree plum')     no match 

(term field=model 'tree whale')     match 
(term field=model 'tree plum')     match 
Problemi correlati