Funkcja interpretacji zapytań w Cloud Search automatycznie interpretuje i filtrów w zapytaniu użytkownika oraz przekształca te elementy w ustrukturyzowanych zapytań opartych na operatorach. Interpretacja zapytań używa zdefiniowanych operatorów oraz zindeksowane dokumenty w schemacie, aby ustalić, co użytkownik zapytania. Ta funkcja pozwala użytkownikom na wyszukiwanie przy minimalnym nakładzie pracy słów kluczowych, a jednocześnie uzyskać dokładne wyniki.
Rzeczywiste wyniki zależą od poziomu ufności.
interpretacji zapytania. Poziom ufności zależy od kilku czynników,
m.in. w miejscu, w którym ciągi zapytania pojawiają się w zindeksowanych dokumentach. Ciąg, taki jak
jako aktor „Tom Hanks”, regularnie pojawiają się na
pole schematu o nazwie actors
daje wyższy poziom ufności. ten sam ciąg znaków,
(„Tom Hanks”) pojawiające się w akapicie, a nie w polu schematu, mogą
skutkują niższym poziomem ufności. W przypadku wysokiego poziomu pewności wyniki
z interpretacji zapytania są wyświetlane użytkownikowi. W przypadku słabszego
wyniki z interpretacji zapytania są mieszane ze standardowym
w wynikach wyszukiwania
słowa kluczowego.
Przykład interpretacji zapytania
Załóżmy, że masz źródło danych, takie jak baza danych, zawierające informacje o filmach. Rysunek 1 przedstawia przykładowe zapytanie i wynik przy interpretacji.
![Omówienie interpretacji zapytań](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/query-interpretation.png?authuser=5&hl=pl)
Biorąc pod uwagę to przykładowe zapytanie, interpretacja zapytania wykonuje te działania:
Analizuje schemat i określa, że obiekty najwyższego poziomu w źródle danych są sklasyfikowane jako
objecttype:movies
. Interpretacja zapytań wie teraz, „filmy” jest typem obiektu.Skanuje dokumenty w źródle danych w połączeniu ze schematem, aby: Określ, gdzie ciąg „action” ma miejsce. Jeśli ciąg znaków występuje głównie w konkretnym „gatunku” pole źródła danych, a następnie interpretacja zapytania ma pewność, że „działanie” to wartość właściwości „genre” zgodnie z definicją w schemacie. Jeśli ciąg występuje głównie w kontekście akapitów treści, a następnie spadek ufności interpretacji zapytania spada.
Wynikowa interpretacja zapytania:
actor:“tom hanks” genre:action objecttype:movies
Interpretacja zapytań jest automatycznie włączona dla wszystkich klientów Cloud Search bez dodatkowej pracy. Aby jednak uzyskać optymalną interpretację zapytań, uporządkować schemat zgodnie z instrukcjami w tym dokumencie.
Utwórz strukturę schematu w celu ułatwienia interpretacji zapytań
Uporządkuj schemat tak, aby zapewnić, może być dla Ciebie korzystna interpretacja zapytań.
Włącz interpretowanie wyświetlanej nazwy
Interpretacja zapytań w Cloud Search wykorzystuje
objectDefinitions
i
propertyDefinitions
w schemacie, aby zinterpretować zapytanie użytkownika i dostosować
wyników. Aby zmaksymalizować korzyści z zalet tych elementów schematu, utwórz
intuicyjnych nazw wyświetlanych przy użyciu
displayLabel
dla nazw właściwości,
objectDisplayLabel
w przypadku nazw obiektów i operatorName
w przypadku operatorów.
Poniższy schemat przedstawia intuicyjne wyświetlane nazwy obiektu filmu:
{
"objectDefinitions": [
{
"name": "movie",
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
...
},
"propertyDefinitions": [
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "genre"
}
},
"displayOptions": {
"displayLabel": "Category"
}
},
...
]
}
]
}
W poprzednim przykładzie:
Definicja obiektu filmowego zawiera atrybut
objectDisplayLabel
„Film”.Parametr genre propertyDefinition zawiera parametry
operatorName
„genre” (gatunek) i „Category” (Kategoria).displayLabel
Te wyświetlane nazwy pozwalają Cloud Search wykonać poniższe zapytanie interpretacje:
- „Filmy akcji”, „gatunkowe filmy akcji” i „gatunek filmowy akcji”
interpretowany jako
genre:action object:movies
. - „filmy akcji lub thrillery” według gatunku
objecttype:movies genre:(action OR thriller)
- „Film akcji” lub „filmy akcji” należy interpretować jako
genre:action objecttype:movies
- „filmy z kategorii komedii” są interpretowane jako
genre:comedy objecttype:movies
.
Włącz interpretację dat, wartości liczbowych i sortowania
Należy zdefiniować lessThanOperatorName
i greaterThanOperatorName
,
określona w
IntegerOperatorOptions
, wszystkie daty i
właściwości liczbowe. Te ustawienia umożliwiają
automatyczną datę i
przy użyciu
interpretacji liczbowych. Aby włączyć interpretacje sortowania,
ustaw opcję isSortable
dla właściwości daty i wartości liczbowych. Poniżej
schemat pokazuje, jak włączyć te opcje.
{
"objectDefinitions": [
{
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
},
"propertyDefinitions": [
{
"name": "runtime",
"isReturnable": true,
"isSortable": true,
"integerPropertyOptions": {
"orderedRanking": "DESCENDING",
"minimumValue": {
"value": 10
},
"maximumValue": {
"value": 500
},
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
},
"displayOptions": {
"displayLabel": "Length"
}
},
{
"name": "releasedate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}
]
}
W poprzednim przykładzie:
- Właściwość liczbowa
runtime
odnosi się do długości filmu. W tej usłudze ustawionoruntimelessthan
iruntimegreaterthan
. - Właściwość daty
releaseDate
odnosi się do daty premiery filmu w teatry. Dla tej usługi ustawiono zasadyreleasedbefore
ireleasedafter
.
Te ustawienia umożliwiają Cloud Search interpretowanie zapytań:
- Zakładając, że rok to 2019, wyrażenie „filmy, które miały miejsce w tym roku” jest interpretowane jako
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
- Zakładając, że tydzień to trzeci tydzień marca, „filmy opublikowane w zeszłym tygodniu” to
zinterpretowane jako
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- „filmy z czasem działania krótszym niż 90” są interpretowane jako
objjecttype: movies runtimelessthan:90
. - Zakładając, że jest to 2019 rok, „filmy, które pojawiły się w tym roku, mają ponad
120” jest interpretowane jako
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - „sortowanie filmów według daty premiery” spowoduje filtrowanie według obiektu typu: filmy prezentowane wyniki zostałyby posortowane według daty opublikowania z domyślną kolejnością sortowania rosnąco.
Włącz interpretację zarezerwowanego operatora
Możesz też używać wbudowanych wbudowanych zasobów reklamowych type
, before
, after
i objecttype
z operatorów, aby poprawić interpretację zapytań. Podczas indeksowania dokumentu wykonaj
:
Wypełnij pole
updateTime
w kolumnieItemMetadata
aby używać operatorówbefore
iafter
. Te ustawienia umożliwiają Cloud Search interpretację tych zapytań:- W kategorii „Filmy z zeszłego tygodnia” zobaczysz listę wszystkich filmów zaktualizowanych w indeksie z poprzedniego tygodnia.
- Wyrażenie „movies przed styczniem 2019 roku” zawiera listę wszystkich filmów, które zostały zindeksowane przed Styczeń 2019 r.
Wypełnij pole
mimeType
wItemMetadata
, aby używać automatycznego wykrywania typu. Zapytanie „filmy akcji” zwróci listę wszystkich dokumentów dotyczących filmów akcji z MIME. typ:application/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
iapplication/vnd.google-apps.video
.
Ograniczenia interpretacji zapytań
Funkcja interpretacji zapytań ma następujące ograniczenia.
- Interpretacja zapytań działa tylko w przypadku tych list kontroli dostępu źródła danych:
- Wszystkie dokumenty są publiczne w domenie (każdy w domenie ma do nich dostęp).
- Wszystkie dokumenty są publiczne źródła danych (każdy, kto ma dostęp do źródła danych) ACL).
- Większość dokumentów w źródle danych ma taką samą listę kontroli dostępu (wszystkie dokumenty) dziedziczenia listy kontroli dostępu z tego samego elementu kontenera) bez zdefiniowanych dodatkowych czytelników.
- Jeśli kilka operatorów schematu ma tę samą wartość, interpretacja wartości
ta wartość do intencji operatora dla zapytania zależy od ogólnego poziomu ufności
zwracany przez system interpretacji zapytań. Załóżmy na przykład, że
mają właściwości
priority
iseverity
z takimi samymi nazwami operatorów zdefiniowane w schemacie. Załóżmy, że oba operatory mogą mieć wartości 0, 1, 2 lub 3. W tym przykładzie: „0” może odnosić się do wartości operatora odpowiadającegopriority
lubseverity
. Wartości te są niejednoznaczne, a poziom ufności to obniżysz się. - Domyślnie interpretacja zapytań w Cloud Search zmniejsza wielkość liter w polu
podczas interpretacji zapytania, z wyjątkiem operatorów tekstowych zdefiniowanych za pomocą funkcji
exactMatchWithOperator
. - Operator
source
nie jest obsługiwany w zapytaniach. - Zapytania, które łączą hasła oparte na operatorach i bezpłatne hasła tekstowe, nie są interpretowany. Na przykład zapytanie „waga przypadków o priorytecie p0:s0” nie będzie obsługiwane, ponieważ „przypadki o priorytecie p0” to bezpłatne hasło tekstowe, natomiast „severity:s0” to hasło oparte na operatorze.
- Strategia interpretacji zapytań zawsze łączy zinterpretowane wyniki z Zwykłe (niezinterpretowane, ocenione według trafności). Nie wykonuje ona pełnej i zastępowanie stron z wynikami.