קבלת תוצאות חיפוש מאפליקציות מדיה

בדף הזה מוסבר איך אפשר לראות תצוגה מקדימה של תוצאות חיפוש באפליקציות מדיה באמצעות מסוףGoogle Cloud , ואיך אפשר לקבל תוצאות חיפוש באמצעות ה-API.

כדי להטמיע את אפליקציית החיפוש, אפשר ליצור ווידג'ט חיפוש ולהוסיף אותו לדף האינטרנט, או לבצע קריאות ל-API ולשלב אותן בדף האינטרנט או באפליקציה.

מידע על מצבי חיפוש

יש כמה מצבים של שאילתות חיפוש באפליקציות מדיה:

  • שאילתות מלאות: כשמשתמשי קצה רוצים לחפש את כל מונח החיפוש או הביטוי. לדוגמה, באפליקציית סטרימינג למוזיקה, משתמשים מקלידים את השם המלא של השיר ומחפשים אותו בבת אחת. זו דרך מועדפת לחיפוש כשמשתמשים בממשק קלט שמאפשר למשתמשים לחפש בבת אחת, כמו קלט אודיו או קלט מקלדת.

    בשאילתות מלאות, אם הרשומה כוללת שגיאת איות, המשתמשים מצפים שהשגיאה תתוקן.

    זוהי התנהגות זהה לחיפוש אפליקציות שאינן מדיה (אפליקציות בהתאמה אישית). מידע נוסף זמין במאמר קבלת תוצאות חיפוש לאפליקציה עם נתונים מובְנים או לא מובְנים.

  • שאילתות חלקיות (או חיפוש תוך כדי הקלדה): כשמשתמשי הקצה מקבלים באופן דינמי קבוצה חדשה של תוצאות חיפוש כשהם מקלידים כל אות. לדוגמה, באפליקציית סטרימינג של מוזיקה, משתמשים מתחילים להזין את שם השיר שהם מחפשים, ועם כל אות שהם מקלידים, תוצאות החיפוש מתעדכנות ומתמקדות באופן דינמי.

  • מצב אוטומטי: מצב אוטומטי הוא שילוב של מצב מלא ומצב חלקי. במצב אוטומטי, החיפוש במדיה מחליט אם להחזיר תוצאות חלקיות או מלאות לשאילתה.

    כדי לקבוע את הכוונה הסבירה של משתמשי הקצה, חיפוש המדיה מנתח אותות שונים ונותן להם משקל, כמו מספר האותיות שהוזנו, מהירות ההזנה והאם הערך שהוזן הוא ישות מוכרת – למשל, שם של שחקן או סרט.

באיזה מצב להשתמש

מצב ברירת המחדל לחיפוש מדיה הוא מצב אוטומטי. עם זאת, יש תרחישים שבהם כדאי לבטל את מצב ברירת המחדל ולציין את מצב השאילתה המלא או החלקי. הנה כמה דוגמאות לתרחישי שימוש:

תרחיש מצב
אתם בטוחים מאוד שהשאילתות של משתמשי הקצה הן שאילתות מלאות. לדוגמה, יש לכם תיבת חיפוש שכוללת פונקציית Enter לסימון השלמת השאילתה, והמשתמש מקיש על Enter. שאילתות מלאות
אתם בטוחים מאוד ששאילתות משתמשי הקצה מיועדות להיות שאילתות חלקיות – כלומר, הם מצפים שרשימת התוצאות תתעדכן אחרי כל אות שמוזנת. שאילתות חלקיות
אף אחד מהתרחישים שלמעלה לא רלוונטי. אפשר להגדיר שחיפוש המדיה יחליט אם להחזיר תוצאות של שאילתות חלקיות או מלאות. אוטומטי

אפשר לראות תצוגה מקדימה של תוצאות החיפוש במסוף Google Cloud או לקבל תוצאות חיפוש באמצעות ה-API. כדי לקבל תוצאות חיפוש באפליקציית מדיה:

המסוף

כדי להשתמש במסוף Google Cloud כדי לראות תצוגה מקדימה של חיפוש מדיה ולהגדיר ווידג'ט:

  1. נכנסים לדף AI Applications במסוף Google Cloud .

    אפליקציות AI

  2. לוחצים על השם של אפליקציית החיפוש של מדיה.

  3. לוחצים על Configurations (הגדרות).

  4. לוחצים על הכרטיסייה ממשק משתמש.

  5. בכרטיסייה ממשק משתמש, מגדירים את האפשרויות הגדרות כלליות ותצוגת נתונים.

  6. בחלונית תצוגה מקדימה, מתחילים להקליד שאילתה.

  7. כדי לשמור את ההגדרות ולהפוך אותן לזמינות בכרטיסייה Integration (שילוב), לוחצים על Save and publish (שמירה ופרסום).

REST

כדי לקבל תוצאות חיפוש באפליקציית מדיה, משתמשים בשיטה engines.servingConfigs.search:

  1. מאתרים את מזהה האפליקציה. אם כבר יש לכם מזהה אפליקציה, דלגו לשלב הבא.

    1. נכנסים לדף AI Applications במסוף Google Cloud .

      מעבר אל 'אפליקציות'

    2. בדף אפליקציות, מאתרים את שם האפליקציה ומעתיקים את המזהה שלה מהעמודה מזהה.

  2. מריצים את פקודת ה-Curl הבאה כדי לקבל תוצאות של חיפוש תוך כדי הקלדה.

    אפשר להשתמש בכל השדות מלבד contentSearchSpec בשילוב עם השדה searchAsYouTypeSpec. לשם הבהרה, השדות האופציונליים הושמטו מהפקודה curl. מידע על השדות האופציונליים זמין במאמר קבלת תוצאות חיפוש של אפליקציה עם נתונים מובְנים או לא מובְנים.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
    "query": "QUERY",
    "searchAsYouTypeSpec": {"condition": "SPEC_CONDITION"}
    }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • APP_ID: המזהה של אפליקציית חיפוש מבוסס סוכנים שרוצים לשלוח אליה שאילתה.
    • QUERY: טקסט השאילתה לחיפוש.
    • SPEC_CONDITION: מפרט החיפוש בזמן ההקלדה יכול להיות אחד מהערכים הבאים:

      • ENABLED: לשאילתות חלקיות
      • DISABLED: לשאילתות מלאות
      • AUTO: חלקי או מלא, לפי הצורך. אם משאירים את השדה SPEC_CONDITION ריק או לא מציינים אותו, מצב החיפוש שמוגדר כברירת מחדל הוא AUTO.

    דוגמה לפקודה ולתוצאה חלקית

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/collections/default_collection/engines/my-app/servingConfigs/default_search:search" \
    -d '{
    "query": "Mission Impossible",
    "searchAsYouTypeSpec": {"condition": "DISABLED"}
    }'
    
    { "results": [ { "id": "189333", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/189333", "id": "189333", "structData": { "uri": "http://mytestdomain.movie/content/189333", "title": "Mission: Impossible - Fallout (2018)", "categories": [ "Action", "Adventure", "Thriller" ], "available_time": "2023-01-01T00:00:00Z", "media_type": "movie", "expire_time": "2033-01-01T00:00:00Z" } } }, { "id": "111781", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/111781", "id": "111781", "structData": { "media_type": "movie", "available_time": "2023-01-01T00:00:00Z", "uri": "http://mytestdomain.movie/content/111781", "title": "Mission: Impossible - Rogue Nation (2015)", "categories": [ "Action", "Adventure", "Thriller" ], "expire_time": "2033-01-01T00:00:00Z" } } }, ... { "id": "116507", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/116507", "id": "116507", "structData": { "uri": "http://mytestdomain.movie/content/116507", "categories": [ "Comedy" ], "media_type": "movie", "available_time": "2023-01-01T00:00:00Z", "title": "Mission London (2010)", "expire_time": "2033-01-01T00:00:00Z" } } } ], "totalSize": 5628, "attributionToken": "vgL0PQEKDAiZxMbCBhD2koiqAxIkNjg1MWM3OTUtMDAwMC0yOWVmLThhNzUtZDQzYTJjYzdiYmNmIgVNRURJQSpUtreMLa_WoTGs1qExwvCeFaOAlyKrtZwxxcvzF-7r6TGotZwxkPeyMI6RyTDPv-Iw1L_iMJvWty2Ovp0V1LKdFfHr6THs4K8tkvGsMJXxrDCY1rctMAFKEjB4OTYzYjdjNGE0ZGYwN2FhZlKUAXByb2plY3RzLzc1NjIwNjYwODQ3OS9sb2NhdGlvbnMvZ2xvYmFsL2NvbGxlY3Rpb25zL2RlZmF1bHRfY29sbGVjdGlvbi9lbmdpbmVzL3F1aWNrc3RhcnQtbWVkaWEtcmVjb21tZW5kXzE3NDUwMjUyMjYwNDMvc2VydmluZ0NvbmZpZ3MvZGVmYXVsdF9zZWFyY2g", "nextPageToken": "Y2YiJ2NjNmMhNDNk1SN3EGOtYWZ5ITLwADMw0CN5czYxUDO2QiGDI9kgzIEGIs1tmJCMIBM1IgC", "summary": {}, "queryExpansionInfo": {} }

השלבים הבאים