2016-03-10 2 views
11

Czym różnią się phrase i term w zapytaniu Structured?Jaka jest różnica między wyrażeniem a słowem kluczowym w zapytaniach strukturalnych?

mam te dane w mojej domenie 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" jest typu text, "identifier" jest typu literal, "created_at" jest typu date.

Zróbmy kilka zapytań:

(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 

Czy mogę coś zrobić z phrase że nie mogę zrobić z term i vice versa?

+0

'phrase' mecze dokładna kolejność i' term' pasuje Jeśli pole zawiera wyszukiwane hasło w dowolnym miejscu. "Niewyraźne zwroty" są możliwe. Czy szukasz innych szczególnych różnic? – jbird

Odpowiedz

1

Istnieje bardzo mała różnica między składnią a użyciem term VS phrase. Jednak zachowanie wyszukiwania w obsłudze phrases można dostosować w taki sposób, terms nie może, które mogą być wykorzystane do poprawy wydajności:

  • dozwolony operatorów
  • phraseFields
  • phraseSlop

Terms przeznaczone są do dopasowania pola tekstowe, gdzie phrases są przeznaczone do bardziej złożonych wyszukiwań.

Przejdź dokumentację internetową i po prostu czytać wszystkie PDF: http://docs.aws.amazon.com/cloudsearch/latest/developerguide/cloudsearch-dg.pdf

+0

Kiedy mówisz, że * zwroty są przeznaczone do bardziej skomplikowanych wyszukiwań * co masz na myśli? Pomyślałbym, że frazy są bardziej surowe i mniej elastyczne, jeśli chodzi o wyszukiwanie, więc ogólnie można z nimi robić mniej skomplikowane rzeczy. – apokryfos

+0

Mogę się tylko domyślać, jak w każdej architekturze, większa sztywność pozwala na lepszą wydajność, a także większą elastyczność komponentów, które od niego zależą. Ostatecznie zwroty stają się bardziej elastyczne tylko wtedy, gdy bierze się pod uwagę konsekwencje aliasów i równoważnych terminów. {citrus, lemon, orange} {large, big, huge} '(fraza" big lemon ") pasuje do wszystkich możliwych kombinacji. –

+0

z 'term' nie sprawdzi każdego słowa, sprawdzi tylko całość. –

1

W przypadku gdy ktoś zastanawia się, okazuje się, że wyszukiwanie wyrażenie pasuje całą frazę podczas wyszukiwania termin dopasowuje warunki, które mogą być fraza, ale mogą to być słowa rozłożone po dokumencie. Przykład:

Tekst:

"model": gaming tree whale plum 

Poniższy 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