AppSearch

AppSearch היא ספריית חיפוש במכשיר לניהול נתונים מובְנים שמאוחסנים באופן מקומי, עם ממשקי API ליצירת אינדקס של נתונים ולאחזור נתונים באמצעות חיפוש טקסט מלא. בעזרת הכלי הזה תוכלו ליצור למשתמשים יכולות חיפוש מותאמות אישית מתוך האפליקציה.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
16 באוקטובר 2024 - - - 1.1.0-alpha06

הצהרת יחסי תלות

כדי להוסיף תלות ב-AppSearch, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.

מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ build.gradle של האפליקציה או המודול:

מגניב

dependencies {
    def appsearch_version = "1.1.0-alpha05"

    implementation "androidx.appsearch:appsearch:$appsearch_version"
    // Use kapt instead of annotationProcessor if writing Kotlin classes
    annotationProcessor "androidx.appsearch:appsearch-compiler:$appsearch_version"

    implementation "androidx.appsearch:appsearch-local-storage:$appsearch_version"
    // PlatformStorage is compatible with Android 12+ devices, and offers additional features
    // to LocalStorage.
    implementation "androidx.appsearch:appsearch-platform-storage:$appsearch_version"
}

Kotlin

dependencies {
    val appsearch_version = "1.1.0-alpha05"

    implementation("androidx.appsearch:appsearch:$appsearch_version")
    // Use annotationProcessor instead of kapt if writing Java classes
    kapt("androidx.appsearch:appsearch-compiler:$appsearch_version")

    implementation("androidx.appsearch:appsearch-local-storage:$appsearch_version")
    // PlatformStorage is compatible with Android 12+ devices, and offers additional features
    // to LocalStorage.
    implementation("androidx.appsearch:appsearch-platform-storage:$appsearch_version")
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.

משוב

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

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.1

גרסה 1.1.0-alpha06

16 באוקטובר 2024

androidx.appsearch:appsearch-*:1.1.0-alpha06 משוחרר. גרסת 1.1.0-alpha06 כוללת את ההוספות האלה.

שינויים ב-API

  • נוסף צומת שמייצג את פונקציית השאילתה PropertyDefined. (I1aeaf)
  • מוסיפים צמתים שמייצגים חיפוש מספרי והגבלה של מאפיינים. (I963a9)
  • מוסיפים צומת שמייצג את פונקציית השאילתה GetSearchStringParameter. (I4f99b)
  • מוסיפים צומת שמייצג את פונקציית השאילתה HasProperty. (I9c1c5)
  • הוספת ממשק להטמעת פונקציות ב-AST. (I9d42e)
  • מוסיפים אופרטורים AND ו-OR. (Iaa442)
  • מוסיפים NegationNode כדי לייצוג שלילה לוגית של שאילתות ב-AST. (Ia855a)
  • הוספת ממשק צומת ל-AppSearch להגדרת צמתים. (If42fb)
  • הוספת הערה על ממשק API ניסיוני עבור AppSearch. (I3e57c)

תיקוני באגים

  • מוסיפים TextNodes לתנאי ההחזקה. (Iefd02)

תיקון אבטחה

  • החל מהשינוי הזה, androidx מבצע קומפילציה מול protobuf 4.28.2 כדי לטפל בבעיה CVE-2024-7254. כדי לטפל בסיכון של נקודת החולשה, צריך לשדרג את התלות ב-androidx.appsearch:appsearch-external-protobuf לגרסה העדכנית ביותר, 1.1.0-alpha06.

גרסה 1.1.0-alpha05

4 בספטמבר 2024

androidx.appsearch:appsearch-*:1.1.0-alpha05 משוחרר. גרסת 1.1.0-alpha05 כוללת את ההוספות האלה.

שינויים ב-API

  • הוצאה משימוש של setEmbeddingSearchEnabled ו-getEmbeddingSearchEnabled מיותרים. המחיקה של setListFilterTokenizeFunctionEnabled ו-getListFilterTokenizeFunctionEnabled. מחיקת פונקציית השאילתה 'tokenize'. הוחלפה בפונקציית השאילתה getSearchStringParameter ובפונקציה addSearchStringParameter. (I09f5a)
  • משנים את השם של Alarm#getComputingDevice ל-getOriginatingDevice. (I63121)

גרסה 1.1.0-alpha04

7 באוגוסט 2024

androidx.appsearch:appsearch-*:1.1.0-alpha04 משוחרר. גרסת 1.1.0-alpha04 מכילה את ההוספות האלה.

תכונות חדשות

  • תמיכה בהטמעה חדשה של PlayServicesStorage, שמאפשרת להשתמש ב-AppSearch במכשירים ישנים בלי לצבור עלות משמעותית של LocalStorage ל-APK. הטמעת האחסון הזו פועלת על ידי שמירת נתוני האפליקציות באפליקציית Play Services.
  • תמיכה בממשקי API חדשים במכשירים עם Android מגרסה 15.
  • תמיכה בחיפוש במסד הנתונים באמצעות הטמעת וקטורים, שמאפשרת התאמה מעורפלת. (I2b41b)
  • תמיכה בסוגים של תבניות הורה ובפולימורפיזם בתוך מודל הסכימה AppSearch. (I06118)
  • לתמוך ב-API של TakenAction שמאפשר לאפליקציות לדווח מתי אנשים לחצו או ננטשו על תוצאות, לצורך שיפור האיכות במהלך חיפושים עתידיים. (I54091)
  • הוספנו את ההערה החדשה @Document.BuilderProducer כדי לתמוך בכיתות עם בוני מודלים במעבד ההערות. (Iec30a)
  • תמיכה בשליטה ברמת פירוט גבוהה יותר על המאפיינים של מסמך בתצוגת עץ שיתווספו לאינדקס. (Iec30a)
  • תמיכה בסינון חיפושים לפי מאפייני מסמכים מסוימים. (Ib2659)
  • תמיכה בהגדרות גלישה מפורטות יותר על ידי הרשאה לשימוש ב-OR וב-AND של הגדרות החשיפה. (I0274b)
  • תמיכה בהענקת חשיפה של נתונים לכל האפליקציות שיכולות לראות את קיומה של האפליקציה שהיא הבעלים שלה (חשיפה ציבורית). (I992e4)
  • תמיכה באחזור רק תוצאות שיש בהן נתונים מאוכלסים בנכס מסוים. (I7d94f)
  • תמיכה באחזור אנשי קשר ארגוניים בפרופיל האישי. (Idd587)

שינויים ב-API

  • מוסיפים את הפרמטרים של ההערה indexableNestedPropertiesList ו-inheritIndexableNestedPropertiesFromSuperclass להערה Document.DocumentProperty של AppSearch כדי לאפשר הוספה לאינדקס של נתיבים ספציפיים של נכסים בתצוגת עץ. (Iec30a)
  • תמיכה ב-buildor של ה-builder כדי ליצור מכונות של ה-builder במעבד ההערות של AppSearch (I265c9)
  • עדכון מעבד האנוטציות של AppSearch כך שיתמוך בהגדרת סוגי הורה לפולימורפיזם (I06118)
  • נוספה שיטה GetSchemaRequest לניקוי הגדרות החשיפה (I38379)
  • תמיכה ב-addParentType ב-AppSearch לצורך פולימורפיזם (Ida14a)
  • הוספת ממשקי API לביטויים נוספים לדירוג (I5d9f4)
  • הוספת SearchAction API (I54091)
  • הוספת שדה תיאור לסוגי AppSearch (I84762)
  • הוספת ממשקי API להטמעת שאילתות חיפוש ורישום דירוגים ל-AppSearch‏ (I0f6c3)
  • הסרה של getDeletionPropagation (I21192)

גרסה 1.1.0-alpha03

24 במאי 2023

androidx.appsearch:appsearch-*:1.1.0-alpha03 משוחרר. גרסה 1.1.0-alpha03 כוללת את ההוספות האלה.

תכונות חדשות

  • תמיכה בממשק API מתקדם לשאילתות, בממשק API מתקדם למתן ציונים ובחיפוש מספרי. (I02d48)
  • הוספת ממשק API של LocalStorage.createGlobalSearchSession לחיפוש בכל מסדי הנתונים באחסון המקומי של אפליקציה אחת. (Id3c89)
  • הוספנו ממשק API למיזוג מסמכים לפי מזהה (Iaecfa)
  • חשוב לתמוך במשקלי המאפיינים כדי לסמן מאפיינים מסוימים כשמשתמשים ב-RANKING_STRATEGY_RELEVANCE_SCORING. (I069b9)
  • מוסיפים את Person ו-ContactPoint כדי לשלוח שאילתה לגוף נתונים של אנשים ב-AppSearch. (Ia58f9)
  • נוספ סוג מסמך חדש ImageObject לפי המודל של http://schema.org/ImageObject. (I6a0c0)
  • מוסיפים מחולק מילים של VERBATIM שמאפשר להוסיף מאפיינים בלי פרשנות על ידי AppSearch. (I47bc0)
  • הוספנו את RFC822_TOKENIZATION כסוג של מחוללי תווים, שמאפשר ביצוע יצירת אסימונים של כתובות אימייל. I8a390
  • מפעילים את החיפוש הגלובלי בתצוגת ניפוי הבאגים. (I51fb2)

שינויים ב-API

  • הוסרו שיטות שמחזירות ListenableFuture ואין להן סיומת אסינכרונית. (I0515f)
  • הוספת היכולת להגדיר תחזיות לפי סיווג Document. (I94576)
  • הוספת שדות מ-Thing אל Alarm, AlarmInstance, Timer, Stopwatch, StopwatchLap, ContactPoint ו-Person (Id876c)

תיקוני באגים

  • תמיכה מלאה בתכונות של Android 13 ב-appsearch-platform-storage‏ (Ia8e61)
  • פתרון בעיות בעקיפת שמות של סכימות ושדות פרטיים במהלך שימוש בירושה.

גרסה 1.1.0-alpha02

24 באוגוסט 2022

androidx.appsearch:appsearch-*:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את ההוספות האלה.

תכונות חדשות

  • השלמנו את תהליך הבדיקה של Optimize מהר יותר באמצעות דחיסה של אינדקס במקום בנייה מחדש של אינדקס מאפס
  • שינוי התג המקורי של הרישום ביומן מ-'icing' ל-'AppSearchIcing', רישום הודעות INFO ביומן כברירת מחדל

שינויים ב-API

  • הוספה של אובייקט PropertyPath חדש לעבודה עם נתיבים ושיטות addProjection חדשות לאישור PropertyPath. (I45588)
  • הוספת את builtin:Thing ל-AppSearch סוגים מובנים (I55427)
  • מניעת שמות ריקים של נכסים ב-GenericDocument מוקדם יותר – בעבר הם נמנעו בזמן ההוספה לאינדקס, עכשיו הם נמנעים בזמן GenericDocument.Builder.build() (I9e780)

תיקוני באגים

  • הסרת פורמט מחרוזת מיותר כדי לשפר את ביצועי הציון של RELEVANCE
  • חלוקה יעילה יותר לדפים כשנתקלים במסמכים שלא ניתן לקרוא או במסמכים שנמחקו
  • הטמענו איסוף אשפה לשאילתות שננטשו
  • תיקון התמיכה בהוספת מסמכים לאינדקס בתצוגת עץ ב-Docs. בעבר, המערכת התעלמה מ-indexNestedProperties. (Iae9a6)

תרומה חיצונית

  • שיאה סמית: תיקון התמיכה באינדקס הפנימי עבור מסמכים. (Iae9a6)

גרסה 1.1.0-alpha01

15 ביוני 2022

androidx.appsearch:appsearch-*:1.1.0-alpha01 משוחרר. הגרסה 1.1.0-alpha01 פותחה בהסתעפות פרטית לפני השקה, ואין לה התחייבויות ציבוריות.

שינויים ב-API

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

תכונות חדשות

  • הגרסה הראשונה של appsearch-builtin-types. הפרויקט הזה מכיל כמה סוגים מובְנים שמבוססים על schema.org, שיכולים להיות שימושיים ללקוחות במקום להגדיר סוגים משלהם לאובייקטים נפוצים. סוגי מודעות נוספים יתווספו בגרסאות עתידיות.
  • אפשר להשתמש ב-ShortcutAdapter כדי להמיר מסמך AppSearch ל-ShortcutInfoCompat. כך ללקוחות יש דרך לשתף מסמכים של AppSearch עם Google באמצעות ספריית core-google-shortcuts
  • יכולת להשתמש בירושה עם @Document מחלקות. אי אפשר להחליף או לשנות שדות, אבל אפשר להוסיף שדות חדשים על ידי הרחבת כיתה עם הערה @Document.
  • Observer API חדש שמאפשר ללקוחות להירשם לקבלת התראות כשיש שינויים בסוגי הפריטים שיש להם גישה אליהם, או כשמסמכים מהסוגים האלה מתווספים, משתנים או מוסרים. חשוב: ההטמעה הנוכחית מציגה התראות רק כשהאפליקציה פועלת. בשלב זה אין דרך לבדוק שינויים שהתרחשו בזמן שהאפליקציה הופסקה. לכן, לא כדאי להסתמך על ה-API הזה לצורך השלמות.
  • ממשק API לניתוח נכסים שמאפשר לטפל ולבדוק באופן מלא את נתיבי הנכסים שמוחזרים על ידי MatchInfo#getPropertyPath.
  • ממשקי API גלובליים של getById ו-getSchema לאחזור מסמכים וסכימות מאפליקציות אחרות שהעניקו לכם גישה.
  • היכולת לאחזר ב-getSchema את פרטי החשיפה של נתונים שיש לכם גישה אליהם
  • היכולת להעניק גישה לאפליקציות שיש להן הרשאה מסוימת ב-Android (מוגבלת לקבוצה צרה של הרשאות ברשימת ההיתרים)
  • תמיכה ב-getters בסגנון isFoo() לשדות בוליאניים במעבד ההערות, בנוסף לסגנון הקודם hasFoo() שנתמך
  • תמיכה בתכונות חדשות שמוגנות באמצעות @RequiresFeature. אפשר להשתמש ב-AppSearchSession#getFeatures כדי לקבוע אילו תכונות נתמכות בקצה העורפי הנוכחי.
  • הסרת המגבלה של כ-13,000 אסימונים במסמכים ספציפיים
  • אפשר להתאים תווים שאינם ASCII+ שאינם אלפאנומריים, כמו סמלי אמוג'י

תיקוני באגים

  • תיקון באג שגרם ל-SetSchema להיכשל כשמבטלים את הגדרת ברירת המחדל של סוג לא תואם שמוטמע.
  • תיקונים לתמיכה מלאה בכיתות עם הערות @AutoValue שמשמשות ככיתות @Document של AppSearch
  • תיקונים לקריסות מסוימות שקשורות לרשימות חוזרות של מחלקות מסמכים ובעיות אחרות
  • תיקון באג שגרם לקריסה של חיפוש לפי קידומת בתנאים מסוימים
  • תיקון באג קטן ב-GetStorageInfo שגרם להחזרת ערכים שגויים במקרה של כשלים ב-IO
  • פתרון בעיות ב-BUSADDERR בזמן קריאת מסמך
  • תיקון פגיעה ב-logcat שנגרמה על ידי הדפסה של טביעת אצבע לא מפורמטת
  • תיקון שגיאות NPE שנגרמות כתוצאה מכשל ב-IO
  • תיקון דליפת זיכרון ב-GetSchemaType, ב-Get, ב-Delete, ב-DeleteByNamespace וב-DeleteBySchemaType

גרסה 1.0.0

גרסה 1.0.0-alpha04

3 בנובמבר 2021

androidx.appsearch:appsearch-*:1.0.0-alpha04 משוחרר. גרסה 1.0.0-alpha04 מכילה את התחייבויות אלה.

תכונות חדשות

  • התלות של Guava ListenableFuture מתווספת באופן אוטומטי כתלות ב-API

שינויים ב-API

  • כדי לספק מידע נוסף על כל התאמה, צריך להוסיף את Searchתוצאה#getSubmatchRange() ואת Searchresults#getSubmatch() . (I2fef6)
  • הבהרה לגבי התיעוד בנושא יצירת טביעות אצבע של PackageIdentifier לשיתוף נתונים לפי packagename+certificate

תיקוני באגים

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

גרסה 1.0.0-alpha03

21 ביולי 2021

androidx.appsearch:appsearch-*:1.0.0-alpha03 משוחרר. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.

תכונות חדשות

  • השקת הקצה העורפי של אחסון הפלטפורמה כדי לאפשר ללקוחות להשתמש ב-AppSearch API עם השירות החדש android.app.appsearch.AppSearchManager שיושקו ב-Android S. פרטים נוספים זמינים במדריך למפתחים של AppSearch.
  • תמיכה במעבד אנוטציות (Annotation processor) ל-AutoValue
  • הסרת המגבלה על הגודל המקסימלי של מאפיין מחרוזת יחידה
  • פורמט אחסון חדש כדי לקצר את זמן האחזור של האינטראקציה הראשונה
  • העברת נתונים פנימית חד-פעמית מפורמט אחסון ישן לפורמט אחסון חדש

תיקוני באגים

  • אוכפים בצורה נכונה מגבלת מסמכים מקסימלית כשמוסיפים מסמכים חדשים
  • תוקנה הקריסה במהלך יצירת AppSearchSession
  • תוקנו באגים ב-SetSchema שלא זיהו מקרים מסוימים של אי-תאימות לאחור ואי-תאימות של אינדקס

גרסה 1.0.0-alpha02

30 ביוני 2021

התכונות androidx.appsearch:appsearch:1.0.0-alpha02, androidx.appsearch:appsearch-compiler:1.0.0-alpha02 וגם androidx.appsearch:appsearch-local-storage:1.0.0-alpha02 משוחררות. גרסה 1.0.0-alpha02 מכילה את ההצהרות האלה.

תכונות חדשות

  • תמיכה מלאה בשפות סינית, יפנית, קוריאנית ותאית
  • הגודל הוקטן של androidx.appsearch:appsearch-local-storage
  • הסרת המגבלה על הגודל המקסימלי של נכסים חוזרים
  • שימוש חוזר בבניינים
  • שיפורים ב-toString() של אובייקטים מסוימים כדי להקל על ניפוי באגים
  • שיפורים בתיעוד של Javadoc

שינויים ב-API

  • השם של SearchResult#getMatches שונה ל-SearchResult#getMatchInfos
  • השם של @Document.Int64Property השתנה ל-@Document.LongProperty

תיקוני באגים

  • שיפורים ותיקונים בחישוב של קטעי הטקסט של התוצאות
  • תיקונים לבאגים באתחול של AppSearchSession

גרסה 1.0.0-alpha01

5 במאי 2021

התכונות androidx.appsearch:appsearch:1.0.0-alpha01, androidx.appsearch:appsearch-compiler:1.0.0-alpha01 וגם androidx.appsearch:appsearch-local-storage:1.0.0-alpha01 משוחררות. גרסה 1.0.0-alpha01 מכילה את ההצהרות האלה.

תכונות חדשות

AppSearch היא ספריית חיפוש לניהול נתונים מובְנים שמאוחסנים באופן מקומי, עם ממשקי API להוספה של נתונים לאינדקס ולאחזור נתונים באמצעות חיפוש טקסט מלא. אפשר להשתמש בו כדי ליצור למשתמשים יכולות חיפוש מותאמות אישית באפליקציה. הגרסה הראשונית היא 1.0.0-alpha01.