البحث في التطبيقات

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

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

لإضافة تبعية على 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-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 حذفت دالة طلب البحث "إنشاء رمز مميّز". تم استبداله بدالة طلب بحث 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 الناتج عن إخفاقات 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 كاعتماد لواجهة برمجة التطبيقات.

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

  • أضف 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.