AppSearch

‫AppSearch هي مكتبة بحث على الجهاز لإدارة البيانات المنظَّمة المخزّنة على الجهاز، مع واجهات برمجة تطبيقات لفهرسة البيانات واستردادها باستخدام البحث عن النص الكامل. استخدِم هذه الميزة لإنشاء إمكانات بحث مخصّصة داخل التطبيق لمستخدمي تطبيقك.
آخر تعديل الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي الأول
11 كانون الأول (ديسمبر) 2024 - - - 1.1.0-alpha07

الإعلان عن التبعيات

لإضافة تبعية على AppSearch، عليك إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle ل تطبيقك أو وحدتك:

Groovy

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")
}

لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زر النجمة.

إنشاء مشكلة جديدة

اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

الإصدار 1.1

الإصدار 1.1.0-alpha07

11 كانون الأول (ديسمبر) 2024

تم إصدار androidx.appsearch:appsearch-*:1.1.0-alpha07. يتضمّن الإصدار 1.1.0-alpha07 عمليات الربط هذه.

الميزات الجديدة

  • أضِف تعليقًا توضيحيًا ExperimentalAppSearchApi إلى مساحات عرض واجهة برمجة التطبيقات الجديدة التي لم تستقر بعد. (Ib09f4)
  • إتاحة تخزين بيانات العناصر المصغّرة الثنائية ومشاركة هذه البيانات بكفاءة من خلال AppSearchSession#openBlobForWriteAsync والطُرق ذات الصلة
  • إتاحة فلترة نتائج طلبات البحث حسب تعبير التقييم من خلال الدالة matchScoreExpression (Id525a)
  • إتاحة نشر الحذف من المستند الرئيسي إلى المستندات الفرعية (Ia032d)
  • إتاحة واجهة برمجة التطبيقات لتشفير البيانات المضمّنة لتحسين أداء التضمين مع فقدان طفيف في الجودة (Id8a07)
  • إتاحة حصر عمليات البحث على مستندات معيّنة باستخدام واجهة برمجة التطبيقات addFilterDocumentIds في SearchSpec (I7c6f1)

تغييرات واجهة برمجة التطبيقات

  • نقل معلومات نوع العنصر الرئيسي من GenericDocument إلى SearchResult (I34a1d)
  • إتاحة أنواع إجراءات جديدة في واجهة برمجة التطبيقات TakenAction، بما في ذلك DismissAction وImpressionAction (I0c6c7)
  • تمت إضافة مخطّط AppSearch مضمّن جديد WebPage. (I28127)

الإصدار 1.1.0-alpha06

16 أكتوبر 2024

تم إصدار androidx.appsearch:appsearch-*:1.1.0-alpha06. يتضمّن الإصدار 1.1.0-alpha06 عمليات الربط هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة عقدة تمثّل دالة طلب البحث PropertyDefined. (I1aeaf)
  • أضِف عقدًا لتمثيل البحث الرقمي وفرض قيود على السمات. (I963a9)
  • أضِف عقدة تمثّل دالة طلب البحث GetSearchStringParameter. (I4f99b)
  • أضِف عقدة تمثّل دالة طلب البحث HasProperty. (I9c1c5)
  • تمت إضافة واجهة لتنفيذ الدوالّ في AST. (I9d42e)
  • أضِف عاملَي التشغيل AND وOR. (Iaa442)
  • أضِف NegationNode لتمثيل النفي المنطقي لطلبات البحث في AST. (Ia855a)
  • أضِف واجهة العقدة إلى AppSearch لتحديد العقد. (If42fb)
  • تضيف تعليقًا توضيحيًا لواجهة برمجة التطبيقات التجريبية في 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 عمليات الربط هذه.

تغييرات واجهة برمجة التطبيقات

  • إيقاف 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 على الأجهزة القديمة بدون تحمُّل تكلفة حجم apk الكبير لنظام التشغيل LocalStorage ويعمل هذا الإجراء على تخزين بيانات التطبيق داخل تطبيق "خدمات Play".
  • إتاحة واجهات برمجة التطبيقات الجديدة على الأجهزة التي تعمل بنظام التشغيل Android 15
  • إتاحة البحث في قاعدة البيانات من خلال تضمين المتجهات، ما يتيح المطابقة التقريبية (I2b41b)
  • أن تتيح أنواع العناصر الرئيسية والأشكال المتعددة ضمن نموذج مخطّط AppSearch (I06118)
  • أن تتيح استخدام واجهة برمجة التطبيقات TakenAction التي تسمح للتطبيقات بالإبلاغ عن الحالات التي تم فيها النقر على النتائج أو التخلي عنها، لتحسين الجودة أثناء عمليات البحث اللاحقة (I54091)
  • إتاحة الفصول الدراسية مع أدوات الإنشاء في وحدة معالجة التعليقات التوضيحية من خلال تقديم التعليق التوضيحي الجديد @Document.BuilderProducer (Iec30a)
  • تتيح إمكانية التحكّم بدقة أكبر في الخصائص التي يتم فهرستها في المستند المُدمَج. (Iec30a)
  • إمكانية فلترة عمليات البحث حسب سمات مستندات معيّنة (Ib2659)
  • إتاحة إعدادات أكثر دقة لمستوى الرؤية من خلال السماح باستخدام "أو" و"و" في إعدادات مستوى الرؤية (I0274b)
  • إتاحة منح إذن الوصول إلى البيانات لجميع التطبيقات التي يمكنها الاطّلاع على وجود التطبيق مالك البيانات (مستوى الرؤية العلني) (I992e4)
  • تتيح هذه الميزة استرداد النتائج التي تمّت تعبئة بياناتها في موقع معيّن فقط. (I7d94f)
  • إتاحة استرداد جهات اتصال المؤسسة في الملف الشخصي (Idd587)

تغييرات واجهة برمجة التطبيقات

  • أضِف مَعلمتَي التعليق التوضيحي indexableNestedPropertiesList وinheritIndexableNestedPropertiesFromSuperclass إلى التعليق التوضيحي Document.DocumentProperty في AppSearch للسماح بفهرسة مسارات مواقع متداخلة محدّدة. (Iec30a)
  • إتاحة طريقة وضع التصميم لإنشاء نُسخ من أداة الإنشاء في معالج التعليقات التوضيحية AppSearch (I265c9)
  • تعديل معالج التعليقات التوضيحية AppSearch للسماح بضبط أنواع العناصر الرئيسية للتعددية (I06118)
  • إضافة طريقة GetSchemaRequest لمحو إعدادات مستوى الرؤية (I38379)
  • إتاحة addParentType في AppSearch للتعدّد (Ida14a)
  • إضافة واجهات برمجة تطبيقات لتعبيرات الترتيب الإضافية (I5d9f4)
  • إضافة واجهة برمجة التطبيقات SearchAction (I54091)
  • إضافة حقل الوصف لأنواع AppSearch (I84762)
  • إعداد واجهات برمجة التطبيقات الخاصة بإدراج طلبات البحث وترتيبها في AppSearch (I0f6c3)
  • إزالة getDeletionPropagation (I21192)

الإصدار 1.1.0-alpha03

24 أيار (مايو) 2023

تم إصدار androidx.appsearch:appsearch-*:1.1.0-alpha03. يحتوي الإصدار 1.1.0-alpha03 على هذه المراجعات.

الميزات الجديدة

  • إتاحة واجهة برمجة تطبيقات لطلبات البحث المتقدّمة لواجهة برمجة تطبيقات لنظام التقييم المتقدّم والبحث الرقمي (I02d48)
  • تضيف LocalStorage.createGlobalSearchSession API للبحث في جميع قواعد البيانات ضمن مساحة التخزين المحلية لتطبيق واحد. (Id3c89)
  • تمت إضافة واجهة برمجة تطبيقات لدمج المستندات حسب المعرّف (Iaecfa)
  • إنّ استخدام أوزان السمات المتوافقة لوضع علامة على سمات معيّنة هو أمر أكثر أهمية عند استخدام RANKING_STRATEGY_RELEVANCE_SCORING. (I069b9)
  • أضِف Person وContactPoint لطلب البحث في قاعدة بيانات Person في AppSearch. (Ia58f9)
  • تمت إضافة نوع مستند جديد ImageObject تم وضع نموذجه على غرار http://schema.org/ImageObject. (I6a0c0)
  • أضِف أداة تحليل VERBATIM تتيح إضافة سمات بدون تفسير من قِبل AppSearch. (I47bc0)
  • تمت إضافة RFC822_TOKENIZATION كنوع من أدوات تقسيم النصوص، ما يتيح تقسيم عناوين البريد الإلكتروني إلى وحدات. (I8a390)
  • فعِّل ميزة "البحث الشامل" في "عرض تصحيح الأخطاء". (I51fb2)

تغييرات واجهة برمجة التطبيقات

  • تمّت إزالة الطُرق التي تعرض ListenableFuture ولا تحتوي على اللاحقة Async. (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 على هذه المراجعات.

الميزات الجديدة

  • تسريع عملية "أدوات تحسين الأداء من Google" باستخدام تقليل حجم الفهرس بدلاً من إعادة إنشائه من البداية
  • تم تغيير علامة التسجيل الأصلية من "icing" إلى "AppSearchIcing"، وتسجيل رسائل INFO تلقائيًا

تغييرات واجهة برمجة التطبيقات

  • إضافة عنصر PropertyPath جديد للعمل مع المسارات، وطرق addProjection جديدة لقبول PropertyPath (I45588)
  • تمت إضافة builtin:Thing إلى الأنواع المضمّنة AppSearch (I55427)
  • منع أسماء المواقع الفارغة في GenericDocument في وقت أقرب: كان يتم منع هذه الأسماء في وقت الفهرسة، ويتم الآن منعها في وقت GenericDocument.Builder.build() (I9e780)

إصلاح الأخطاء

  • تمت إزالة تنسيقات السلاسل غير الضرورية لتحسين أداء تسجيل الصلة
  • تقسيم الصفحات بفعالية أكبر عند العثور على مستندات غير قابلة للقراءة أو تم حذفها
  • تم تنفيذ ميزة جمع المهملات لطلبات البحث التي تم التخلي عنها.
  • إصلاح مشكلة عدم توفّر ميزة الفهرسة المُدمجة في "مستندات Google" في السابق، كان يتم تجاهل indexNestedProperties. (Iae9a6)

المساهمة الخارجية

  • شيا سميث: إصلاح مشكلة عدم توفّر فهرسة متداخلة في "مستندات Google" (Iae9a6)

الإصدار 1.1.0-alpha01

15 حزيران (يونيو) 2022

تم إصدار androidx.appsearch:appsearch-*:1.1.0-alpha01. تم تطوير الإصدار 1.1.0-alpha01 في فرع خاص بالإصدار التجريبي ولا يتضمّن أيّ عمليات إرسال علنية.

تغييرات واجهة برمجة التطبيقات

  • تمّت إعادة تسمية جميع الأساليب التي تعرض ListenableFuture لإضافة اللاحقة Async. على سبيل المثال، تمّت إعادة تسمية getSchema ليصبح getSchemaAsync. تم إيقاف الإصدارات السابقة نهائيًا وستتم إزالتها في إصدار مستقبلي.

الميزات الجديدة

  • الإصدار الأول من appsearch-builtin-types يحتوي هذا المشروع على بعض الأنواع المضمّنة المستندة إلى schema.org والتي قد يجد العملاء أنّ استخدامها أكثر ملاءمةً بدلاً من تحديد أنواعهم الخاصة للكائنات الشائعة. وستتم إضافة المزيد من الأنواع في الإصدارات المستقبلية.
  • إمكانية استخدام ShortcutAdapter لتحويل مستند AppSearch إلى ShortcutInfoCompat يمنح هذا الإجراء العملاء طريقة لمشاركة مستندات AppSearch مع Google باستخدام مكتبة core-google-shortcuts.
  • إمكانية استخدام الاكتساب مع فئات @Document لا يمكن استبدال الحقول أو تعديلها، ولكن يمكن إضافة حقول جديدة من خلال توسيع فئة تمّت إضافة تعليق توضيحي إليها باستخدام @Document.
  • واجهة برمجة التطبيقات الجديدة Observer API التي تتيح للعملاء الاشتراك في خدمة تلقّي الإشعارات عند تغيير الأنواع التي يمكنهم الوصول إليها أو عند إضافة مستندات من هذه الأنواع أو تعديلها أو إزالتها ملاحظة مهمة: لا يرسل الإصدار الحالي الإشعارات إلا عندما يكون تطبيقك قيد التشغيل. لا تتوفّر حاليًا طريقة لفحص التغييرات التي حدثت أثناء إيقاف تطبيقك. وبناءً على ذلك، يجب عدم الاعتماد على واجهة برمجة التطبيقات هذه للحصول على معلومات كاملة.
  • واجهة برمجة التطبيقات الخاصة ببرنامج تحليل المواقع التي تتيح لك التعامل بشكل كامل مع مسارات المواقع التي يعرضها MatchInfo#getPropertyPath وفحصها
  • واجهتا برمجة التطبيقات getById وgetSchema العامتان لاسترداد المستندات والمخططات من التطبيقات الأخرى التي منحت لك إذن الوصول
  • إمكانية استرداد معلومات مستوى الوصول في getSchema للبيانات التي يمكنك الوصول إليها
  • إمكانية منح إذن الوصول إلى التطبيقات التي تمتلك إذنًا معيّنًا من Android (يقتصر على مجموعة محدودة من الأذونات المدرَجة في القائمة المسموح بها)
  • إتاحة أدوات الحصول على القيم بأسلوب isFoo() للحقول المنطقية في وحدة معالجة التعليقات التوضيحية، بالإضافة إلى النمط المتوافق السابق hasFoo()
  • إتاحة الميزات الجديدة المحمية برمز @RequiresFeature استخدِم AppSearchSession#getFeatures لتحديد الميزات التي تتيحها الخلفية الحالية.
  • إزالة الحد الأقصى الذي يبلغ 13 ألف رمز مميّز تقريبًا للمستندات الفردية
  • السماح بالمطابقة على الأحرف غير الأبجدية الرقمية وغير ASCII، مثل الرموز التعبيرية

إصلاح الأخطاء

  • إصلاح خطأ يؤدي إلى تعذُّر SetSchema عند إلغاء نوع غير متوافق مُدمَج
  • إصلاحات لدعم فئات @AutoValue التي تمت عليها تعليقات توضيحية بالكامل والتي يتم استخدامها لفئات @Document في AppSearch
  • إصلاحات لبعض الأعطال المرتبطة بالقوائم المتكررة لفئات المستندات ومشاكل أخرى
  • إصلاح خطأ كان يؤدي إلى تعطُّل البحث عن البادئة في ظروف معيّنة
  • إصلاح خطأ بسيط في GetStorageInfo يؤدي إلى عرض قيم غير صحيحة عند حدوث أخطاء في I/O
  • حلّ BUSADDERR مشكلة عند قراءة مستند
  • إصلاح تلف logcat الناتج عن طباعة بصمة إصبع غير منسَّقة
  • إصلاح خطأ NPE الناتج عن حالات تعذُّر I/O
  • حلّ مشكلة تسرّب الذاكرة في 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 كاعتماد لواجهة برمجة التطبيقات.

تغييرات واجهة برمجة التطبيقات

  • أضِف SearchResult#getSubmatchRange() وSearchResult#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.
  • إتاحة معالج التعليقات التوضيحية لـ 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

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية 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 هي مكتبة بحث لإدارة البيانات المنظَّمة المخزّنة على الجهاز، مع واجهات برمجة تطبيقات لفهرسة البيانات واستردادها من خلال البحث عن النص الكامل. يمكنك استخدامها لإنشاء إمكانات بحث مخصّصة داخل التطبيق للمستخدمين. رقم الإصدار الأولي هو 1.0.0-alpha01.