How are phrase
and term
different in a Structured
query?
I have this data in my CloudSearch domain:
{
"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"
is type text
, "identifier"
is type literal
, "created_at"
is type date
.
Let's make a few queries:
(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
Is there anything I can do with phrase
that I can't do with term
and vice-versa?
There is very little difference between the syntax and usage of term
VS phrase
. However, search behavior in handling phrases
can be customized in ways terms
cannot, which can be used to improve performance:
Terms
are intended for matching text fields, where phrases
are intended for more complex searches.
Skip the web documentation, and just read all of the PDF: http://docs.aws.amazon.com/cloudsearch/latest/developerguide/cloudsearch-dg.pdf
In case anyone is wondering, turns out that a phrase search matches the entire phrase while a term search matches the terms which may be a phrase but may be words spread around the document. Example:
Text:
"model": gaming tree whale plum
The following hold:
(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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With