התכונה פרשנות שאילתה של Cloud Search מפרשת באופן אוטומטי את ומסננים בשאילתת החיפוש של המשתמש, וממירים את הרכיבים האלה שאילתה מובנית ומבוססת-אופרטורים. פרשנות השאילתה משתמשת באופרטורים מוגדרים בסכימה, יחד עם המסמכים שנוספו לאינדקס, כדי להסיק פירוש השאילתה. התכונה הזו מאפשרת למשתמש לחפש עם מילות מפתח, אבל עדיין להשיג תוצאות מדויקות.
התוצאות בפועל שיוצגו למשתמש תלויות ברמת הסמך
של פרשנות השאילתה. הביטחון מבוסס על כמה גורמים,
כולל המיקום שבו מחרוזות השאילתה מופיעות במסמכים שנוספו לאינדקס. מחרוזת, כמו
בתור שם השחקן "טום הנקס", מופיעה באופן עקבי
שנקרא actors
, יש רמת מהימנות גבוהה יותר. אותה מחרוזת
("Tom Hanks") מופיע בתוך פסקה, במקום בשדה סכימה,
רמת הביטחון שלהן נמוכה יותר. במקרה של רמת מהימנות גבוהה, רק התוצאות יתקבלו
מ פירוש השאילתה, מוצגות למשתמש. במקרה של חלשה
מהימנות, התוצאות מפרשנות השאילתה מתמזגות
מתוצאות החיפוש של מילות מפתח.
דוגמה לפרשנות שאילתה
נניח שיש לכם מקור נתונים, כמו מסד נתונים, מידע על סרטים. איור 1 מציג שאילתת חיפוש לדוגמה ופרשנות.
בהתחשב בשאילתה לדוגמה הזו, פרשנות השאילתה מבצע את הפעולות הבאות:
ניתוח הסכימה וקובע שהאובייקטים ברמה העליונה במקור הנתונים מסווגים בתור
objecttype:movies
. במסגרת פרשנות השאילתה, "סרטים" בשאילתה היא סוג אובייקט.סורקת מסמכים במקור הנתונים, בשילוב עם הסכימה, כדי לקבוע איפה המחרוזת 'פעולה' מתרחשת. אם המחרוזת מתרחשת בעיקר ב'ז'אנר' ספציפי שדה מקור נתונים, ולאחר מכן פירוש שאילתה בטוחים ש'פעולה' הוא ערך המאפיין של הנכס 'ז'אנר' כפי שמוגדר בסכימה. אם המחרוזת מתרחשת בעיקר בהקשר של ופסקאות תוכן, ואז רמת הסמך של הפרשנות יורדת.
פרשנות השאילתה שמתקבלת היא:
actor:“tom hanks” genre:action objecttype:movies
פרשנות השאילתה מופעלת באופן אוטומטי לכל הלקוחות של Cloud Search ללא מאמץ נוסף. עם זאת, כדי לפרש שאילתה אופטימלית לבנות את הסכימה לפי ההוראות במסמך הזה.
מבנה הסכימה כך שתתמוך בפירוש שאילתות
עליך לבנות את הסכימה באופן שיבטיח אתם יכולים להפיק תועלת מפירוש השאילתה.
הפעלת פירושי השמות המוצגים
פירוש השאילתה ב-Cloud Search משתמש
objectDefinitions
ו-
propertyDefinitions
בסכימה כדי לפרש שאילתה של משתמש ולכוונן
תוצאות. כדי להפיק את המרב מרכיבי הסכימה האלה, עליכם ליצור
שמות מוצגים אינטואיטיביים באמצעות
displayLabel
לשמות נכסים,
objectDisplayLabel
לשמות אובייקטים, ו-operatorName
לאופרטורים.
הסכימה הבאה מציגה שמות תצוגה אינטואיטיביים של אובייקט סרט:
{
"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"
}
},
...
]
}
]
}
בדוגמה הקודמת:
הגדרת האובייקט של הסרט כוללת את השדה 'פילם'
objectDisplayLabel
.הגדרת מאפיין הז'אנר כוללת את 'ז'אנר'
operatorName
ואת 'קטגוריה'displayLabel
.
השמות המוצגים האלה מאפשרים ל-Cloud Search ליצור את השאילתה הבאה פירושים:
- "סרטי פעולה", "סרטי ז'אנר פעולה" או "פעולה בז'אנר של סרטים" הם
מבוטאת כ-
genre:action object:movies
. - "סרטים עם ז'אנר פעולה או מותחנים" יפורשו בתור
objecttype:movies genre:(action OR thriller)
- "סרט פעולה" או "סרטי פעולה" מפורשים בתור
genre:action objecttype:movies
- "סרטים בקטגוריה 'קומדיה' מפורשים בתור
genre:comedy objecttype:movies
.
הפעלת פרשנויות של תאריך, מספריים ומיון
צריך להגדיר את lessThanOperatorName
ואת greaterThanOperatorName
,
צוין ב-
IntegerOperatorOptions
, לכל התאריכים
של מספר מאפיינים. ההגדרות האלה מפעילות תאריכים אוטומטיים
פרשנויות מספריות. בנוסף, כדי להפעיל פרשנויות של מיון
להגדיר את האפשרות isSortable
למאפיינים של תאריך ומספרים. הבאים
שמציגה איך להפעיל את האפשרויות האלה.
{
"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"
}
}
}
]
}
]
}
בדוגמה הקודמת:
- המאפיין המספרי
runtime
מתייחס לאורך של סרט.runtimelessthan
ו-runtimegreaterthan
הוגדרו לנכס הזה. - מאפיין התאריך
releaseDate
מתייחס לתאריך שבו סרט מושק בתי קולנוע. הערכיםreleasedbefore
ו-releasedafter
מוגדרים לנכס הזה.
ההגדרות האלו מאפשרות ל-Cloud Search לבצע את פירושי השאילתות הבאות:
- בהנחה שהשנה היא 2019, המשמעות של "סרטים שיצאו השנה" היא
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
- בהנחה שהשבוע הוא השבוע השלישי במרץ, "סרטים שיצאו בשבוע שעבר" הם
מפוענח כ-
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- 'סרטים עם זמן ריצה קטן מ-90' יפורש כ-
objjecttype: movies runtimelessthan:90
. - בהנחה שהשנה היא 2019, "סרטים שיצאו השנה באורך של יותר מ-
המשמעות של 120 אינץ' היא
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - השדה 'sort movies by date date' (מיון סרטים לפי תאריך פרסום) מסנן לפי 'objecttype: movies' התוצאות שיוצגו ימוינו בתאריך הפרסום לפי סדר המיון שמוגדר כברירת מחדל עולה.
הפעלת פרשנות של אופרטור שמור
אפשר גם להשתמש בממשקי type
, before
, after
ו-objecttype
השמורים
כדי לשפר את פירוש השאילתה. כשמסמך נוסף לאינדקס, צריך לבצע את הפעולה
הבאים:
מאכלסים את השדה
updateTime
בשדהItemMetadata
כדי להשתמש באופרטוריםbefore
ו-after
. האלה מאפשרות ל-Cloud Search לבצע את פירושי השאילתות הבאים:- בקטע 'סרטים מהשבוע שעבר' יוצגו כל הסרטים שעודכנו להוסיף לאינדקס את השבוע הקודם.
- בקטע 'סרטים לפני ינואר 2019' יוצגו כל הסרטים שנוספו לאינדקס לפני ינואר 2019 ינואר 2019.
מאכלסים את השדה
mimeType
בשדהItemMetadata
כדי להשתמש בזיהוי אוטומטי של מהסוג הזה. השאילתה 'סרטוני פעולה' תכלול את כל המסמכים של סרטי הפעולה שכוללים mime סוג שלapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
ו-application/vnd.google-apps.video
.
מגבלות בפרשנות השאילתה
התכונה לפירוש השאילתה כוללת את המגבלות הבאות.
- פרשנות השאילתות פועלת רק עבור רשימות ה-ACL הבאות של מקורות הנתונים:
- כל המסמכים מוגדרים כציבוריים (לכל מי שנמצא בדומיין יש גישה אליהם).
- כל המסמכים הם מקור נתונים ציבורי (כל מי שיש לו גישה למקור הנתונים) ACL).
- לרוב המסמכים במקור הנתונים יש אותה רשימת ACL (לכל המסמכים) תירש ACL מאותו פריט מאגר) ללא קוראים נוספים.
- אם למספר אופרטורים של סכימה יש ערך זהה, הפרשנות של
הערך לכוונת אופרטור של שאילתה תלוי ברמת הסמך הכוללת
שהמוחזר על ידי המערכת לפירוש השאילתות. לדוגמה, נניח שאתם
כוללים את המאפיינים
priority
ו-severity
עם אותם שמות אופרטורים מוגדר בסכימה. נניח ששני האופרטורים יכולים לקבל את הערכים 0, 1, 2 או 3. בדוגמה הזו, הערך '0' שאילתה יכולה להתייחס לערך האופרטור שלpriority
אוseverity
. הערכים האלה לא ברורים ורמת הסמך היא נמוכה יותר. - כברירת מחדל, פרשנות השאילתה ב-Cloud Search מפחיתה את מספר האותיות בשדה
בזמן פירוש השאילתה, מלבד אופרטורים של טקסט שמוגדרים עם
exactMatchWithOperator
אפשרויות. - האופרטור
source
לא נתמך בשאילתות. - שאילתות המשלבות מונחים המבוססים על אופרטורים עם מונחי טקסט חופשיים לא מפורשות. לדוגמה, השאילתה "p0Priority cases severity:s0" לא היה יש תמיכה כי "בקשות בעדיפות p0" הוא מונח טקסט חופשי ואילו 'severity:s0' הוא מונח שמבוסס על אופרטור.
- האסטרטגיה לפרשנות השאילתה תמיד משלבת את התוצאות שפוענחו עם תוצאות רגילות (שאינן מפורשות, עם דירוג רלוונטיות). הוא לא מבצע או החלפת דף בתוצאות.