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

AppSearch هي مكتبة بحث على الجهاز فقط تتيح لك إدارة البيانات المهيكلة المخزنة محليًا، مع واجهات برمجة التطبيقات لفهرسة البيانات واسترداد البيانات باستخدام البحث في النص الكامل. ويمكنك استخدامها لإنشاء إمكانات بحث مخصصة داخل التطبيق المستخدمين.
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
7 أغسطس 2024 - - - 1.1.0-alpha04

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

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

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

رائع

dependencies {
    def appsearch_version = "1.1.0-alpha04"

    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-alpha04"

    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-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)
  • دعم إعدادات رؤية أكثر دقة من خلال السماح بـ OR وAND لإعدادات الرؤية. (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)
  • إضافة شخص وContactPoint للاستعلام عن مجموعة بيانات الشخص في AppSearch. (Ia58f9)
  • تمت إضافة نوع مستند جديد ImageObject بتصميم على غرار http://schema.org/ImageObject. (I6a0c0)
  • أضِف أداة ترميز VERBATIM تسمح بإضافة سمات بدون تفسير من خلال AppSearch. (I47bc0)
  • تمت إضافة RFC822_TOKENIZATION كنوع برنامج إنشاء رموز مميّزة، ما يسمح بترميز عناوين البريد الإلكتروني. (I8a390)
  • تفعيل البحث العام في عرض تصحيح الأخطاء. (I51fb2)

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

  • الطرق التي تمت إزالتها التي تعرض الخطأ ListenableFuture ولا تتضمّن لاحقة غير متزامنة (I0515f)
  • يضيف إمكانية إعداد التوقعات حسب فئة Document. (I94576)
  • إضافة حقول من Thing إلى Alarm وAlarmInstance وTimer وStopwatch وStopwatchLap وContactPoint وPerson (Id876c)

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

  • التوافق الكامل مع ميزات Android 13 في مساحة التخزين في النظام الأساسي لـ appsearch (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).

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

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

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

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

الإصدار 1.1.0-alpha01

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

تم طرح androidx.appsearch:appsearch-*:1.1.0-alpha01. تم تطوير الإصدار 1.1.0-alpha01 في فرع خاص قبل الإصدار التجريبي وليس له أي التزامات عامة.

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

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

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

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

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

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

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

  • جلب تبعية Java ListenableFuture تلقائيًا كاعتمادية لواجهة برمجة التطبيقات

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

  • أضف SearchResult#getSubmatchRange() وSearchResult#getSubmatch() لتوفير مزيد من المعلومات حول كل مطابقة. (I2fef6)
  • توضيح المستندات المتعلّقة بكيفية إنشاء ملفات مرجعية لمعرّف PackageIdentifier لمشاركة البيانات باستخدام شهادة packagename+

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

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

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

  • يتم فرض الحد الأقصى للمستندات بشكل صحيح عند إدراج مستندات جديدة
  • تم إصلاح العطل أثناء إنشاء 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.