AppSearch

AppSearch یک کتابخانه جستجوی روی دستگاه برای مدیریت داده‌های ساختاری ذخیره‌شده محلی است، با APIهایی برای نمایه‌سازی داده‌ها و بازیابی داده‌ها با استفاده از جستجوی متن کامل. از آن برای ایجاد قابلیت های جستجوی درون برنامه ای سفارشی برای کاربران خود استفاده کنید.
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
11 دسامبر 2024 - - - 1.1.0-alpha07

اعلام وابستگی ها

برای افزودن وابستگی به 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"
}

کاتلین

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 حاوی این commit ها است.

ویژگی های جدید

  • حاشیه نویسی ExperimentalAppSearchApi را به سطوح API جدید که هنوز تثبیت نشده اند اضافه کنید. ( Ib09f4 )
  • پشتیبانی از ذخیره و به اشتراک گذاری کارآمد داده های حباب باینری از طریق AppSearchSession#openBlobForWriteAsync و روش های مرتبط
  • پشتیبانی از فیلتر کردن نتایج پرس و جو با نمره گذاری عبارت از طریق تابع matchScoreExpression ( Id525a )
  • پشتیبانی از انتشار حذف از سند والد به اسناد فرزند. ( Ia032d )
  • پشتیبانی از تعبیه API کوانتیزاسیون برای افزایش عملکرد جاسازی با کاهش جزئی کیفیت. ( ID8a07 )
  • پشتیبانی از محدود کردن جستجوها به اسناد خاص با استفاده از addFilterDocumentIds API در SearchSpec . ( I7c6f1 )

تغییرات API

  • اطلاعات نوع والد را از GenericDocument به SearchResult منتقل کنید. ( I34a1d )
  • پشتیبانی از انواع اقدام جدید در TakenAction API، از جمله DismissAction و ImpressionAction . ( I0c6c7 )
  • WebPage طرحواره داخلی AppSearch جدید اضافه شد. ( I28127 )

نسخه 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 )
  • برای تعریف گره ها رابط Node را به 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' حذف شد. با تابع query 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 Services کار می کند.
  • پشتیبانی از API های جدید در دستگاه های دارای Android 15.
  • پشتیبانی از جستجوی پایگاه داده با تعبیه بردارها، امکان تطبیق فازی. ( I2b41b )
  • پشتیبانی از انواع والدین و چندشکلی در مدل طرحواره AppSearch . ( I06118 )
  • از TakenAction API پشتیبانی کنید که به برنامه‌ها اجازه می‌دهد زمانی که روی نتایج کلیک شده یا رها شده‌اند، گزارش دهند تا کیفیت در طول جستجوهای بعدی افزایش یابد. ( I54091 )
  • با معرفی حاشیه نویسی @Document.BuilderProducer جدید، از کلاس های سازنده در پردازنده حاشیه نویسی پشتیبانی کنید. ( Iec30a )
  • پشتیبانی از کنترل دقیق‌تر بر روی اینکه کدام ویژگی یک سند تودرتو ایندکس می‌شود. ( Iec30a )
  • پشتیبانی از فیلتر کردن جستجوها برای ویژگی های سند خاص. ( Ib2659 )
  • با اجازه دادن به تنظیمات دید OR و AND از تنظیمات دید با دانه بندی دقیق تر پشتیبانی کنید. ( I0274b )
  • پشتیبانی از اعطای قابلیت مشاهده داده ها به همه برنامه هایی که می توانند وجود برنامه مالک را مشاهده کنند (مشاهده عمومی). ( I992e4 )
  • پشتیبانی از بازیابی فقط نتایجی که داده‌های پر شده در یک ویژگی خاص دارند. ( I7d94f )
  • پشتیبانی از بازیابی مخاطبین سازمانی در نمایه شخصی. ( ID587 )

تغییرات API

  • پارامترهای حاشیه نویسی indexableNestedPropertiesList و inheritIndexableNestedPropertiesFromSuperclass را به حاشیه نویسی Document.DocumentProperty AppSearch اضافه کنید تا امکان نمایه سازی مسیرهای ویژگی تودرتوی خاص را فراهم کنید. ( Iec30a )
  • پشتیبانی از سازنده سازنده برای ایجاد نمونه های سازنده در پردازنده حاشیه نویسی 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 حاوی این commit ها است.

ویژگی های جدید

  • پشتیبانی از API جستجوی پیشرفته، API امتیازدهی پیشرفته و جستجوی عددی. ( I02d48 )
  • LocalStorage.createGlobalSearchSession API را برای جستجو در همه پایگاه‌های داده در حافظه محلی یک برنامه اضافه می‌کند. ( ID3c89 )
  • افزودن یک API برای پیوستن به اسناد توسط ID ( Iaecfa )
  • هنگام استفاده از RANKING_STRATEGY_RELEVANCE_SCORING ، وزن‌های ویژگی پشتیبانی برای علامت‌گذاری ویژگی‌های خاص مهم‌تر است. ( I069b9 )
  • برای جستجوی پیکره افراد در AppSearch فرد و ContactPoint را اضافه کنید. ( Ia58f9 )
  • اضافه شده نوع سند جدید ImageObject مدل شده از http://schema.org/ImageObject. ( I6a0c0 )
  • یک نشانه‌ساز VERBATIM اضافه کنید که اجازه می‌دهد ویژگی‌ها را بدون تفسیر توسط AppSearch اضافه کنید. ( I47bc0 )
  • RFC822_TOKENIZATION به‌عنوان یک نوع نشانه‌ساز اضافه شد که امکان توکن‌سازی آدرس‌های ایمیل را فراهم می‌کند. ( I8a390 )
  • جستجوی جهانی را در نمای Debug فعال کنید. ( I51fb2 )

تغییرات API

  • متدهایی حذف شدند که 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 حاوی این commit ها است.

ویژگی های جدید

  • سرعت فرآیند بهینه سازی را با استفاده از فشرده سازی شاخص به جای بازسازی شاخص از ابتدا افزایش دهید
  • تگ ورود به سیستم بومی از "icing" به "AppSearchIcing" تغییر کرد، پیام های اطلاعاتی را به طور پیش فرض ثبت کنید

تغییرات API

  • شی PropertyPath جدید برای کار با مسیرها و متدهای addProjection جدید برای پذیرش PropertyPath اضافه می کند. ( I45588 )
  • اضافه builtin:Thing به AppSearch انواع داخلی ( I55427 )
  • زودتر از اسامی اموال خالی در GenericDocument جلوگیری کنید – قبلاً در زمان نمایه سازی از آنها جلوگیری می شد، اکنون در زمان GenericDocument.Builder.build() جلوگیری می شود ( I9e780 )

رفع اشکال

  • برای بهبود عملکرد امتیاز دهی RELEVANCE، قالب بندی رشته های غیر ضروری حذف شد
  • صفحه بندی کارآمدتر هنگام مواجهه با اسناد ناخوانا یا حذف شده
  • جمع آوری زباله برای پرس و جوهای رها شده اجرا شد
  • پشتیبانی از نمایه سازی تودرتو برای Documents را برطرف کنید. قبلاً indexNestedProperties نادیده گرفته شد. ( Iae9a6 )

مشارکت خارجی

  • Shea Smith: پشتیبانی از نمایه سازی تودرتو برای Documents را برطرف کنید. ( Iae9a6 )

نسخه 1.1.0-alpha01

15 ژوئن 2022

androidx.appsearch:appsearch-*:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 در یک شعبه پیش از انتشار خصوصی توسعه یافته است و هیچ تعهد عمومی ندارد.

تغییرات API

  • همه متدهایی که ListenableFuture برمی گرداند به پسوند Async تغییر نام داده اند. برای مثال، getSchema به getSchemaAsync تغییر نام داده است. نسخه های قبلی منسوخ شده اند و در نسخه های بعدی حذف خواهند شد.

ویژگی های جدید

  • اولین نسخه از انواع ساخته شده با جستجو. این پروژه شامل برخی از انواع داخلی مبتنی بر schema.org است که مشتریان ممکن است به جای تعریف انواع خود برای اشیاء رایج، استفاده از آنها را راحت بدانند. انواع بیشتری در نسخه های بعدی اضافه خواهد شد.
  • امکان استفاده از ShortcutAdapter برای تبدیل یک سند AppSearch به ShortcutInfoCompat . این به مشتریان راهی می دهد تا اسناد AppSearch را با استفاده از کتابخانه core-google-shortcuts با Google به اشتراک بگذارند.
  • امکان استفاده از وراثت با کلاس های @Document . فیلدها را نمی توان جایگزین یا تغییر داد، اما می توان با گسترش یک کلاس مشروح شده با @Document فیلدهای جدید اضافه کرد.
  • New Observer API که به مشتریان این امکان را می‌دهد تا زمانی که انواعی که به آن‌ها دسترسی دارند یا اسنادی از آن انواع اضافه، اصلاح یا حذف می‌شوند، برای اعلان‌ها ثبت نام کنند. مهم: اجرای فعلی فقط زمانی که برنامه شما در حال اجرا است اعلان ها را ارائه می دهد. در حال حاضر هیچ راهی برای بررسی تغییراتی که هنگام توقف برنامه شما رخ داده است وجود ندارد. بر این اساس، برای کامل بودن نباید به این API اعتماد کنید.
  • API تجزیه‌کننده ویژگی که به شما امکان می‌دهد مسیرهای دارایی بازگردانده شده توسط MatchInfo#getPropertyPath را به طور کامل مدیریت و بررسی کنید.
  • getById جهانی و API جهانی getSchema برای بازیابی اسناد و طرح‌واره‌ها از برنامه‌های دیگری که به شما امکان مشاهده را داده‌اند.
  • امکان بازیابی اطلاعات قابلیت مشاهده در getSchema برای داده هایی که به آنها دسترسی دارید
  • امکان اعطای دید به برنامه‌هایی که دارای مجوز Android خاص هستند (محدود به مجموعه محدودی از مجوزهای لیست مجاز)
  • پشتیبانی از دریافت کننده های سبک isFoo() برای فیلدهای بولی در پردازنده حاشیه نویسی، علاوه بر سبک پشتیبانی شده قبلی hasFoo()
  • پشتیبانی از ویژگی‌های جدید که پشت @RequiresFeature محافظت می‌شوند. از AppSearchSession#getFeatures استفاده کنید تا مشخص کنید باطن فعلی از چه چیزی پشتیبانی می کند.
  • محدودیت ~13 هزار توکن در اسناد فردی را حذف کنید
  • مطابقت را در نویسه‌های غیرالفبایی + غیرالفبایی، مانند شکلک‌ها مجاز کنید

رفع اشکال

  • رفع اشکالی که در هنگام لغو یک نوع ناسازگار تو در تو SetSchema با شکست مواجه می‌شود.
  • رفع‌هایی برای پشتیبانی کامل از کلاس‌های حاشیه‌نویسی @AutoValue که به‌عنوان کلاس‌های AppSearch @Document استفاده می‌شوند
  • رفع برخی از خرابی‌های مربوط به لیست‌های مکرر کلاس‌های Document و سایر مشکلات
  • رفع اشکالی که جستجوی پیشوند را تحت شرایط خاص خراب می‌کند
  • رفع اشکال جزئی در 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 حاوی این commit ها است.

ویژگی های جدید

  • وابستگی Guava ListenableFuture به طور خودکار به عنوان یک وابستگی API وارد می شود

تغییرات API

  • SearchResult#getSubmatchRange() و SearchResult#getSubmatch() را برای ارائه اطلاعات بیشتر در مورد هر مسابقه اضافه کنید. ( I2fef6 )
  • شفاف سازی اسناد در مورد نحوه ایجاد اثر انگشت PackageIdentifier برای اشتراک گذاری داده ها با نام بسته + گواهینامه

رفع اشکال

  • اگر کاربر سعی کند صفحات نتیجه را پس از پایان مجموعه نتایج واکشی کند، خرابی را برطرف کنید
  • اگر فقط فضاهای نام نامعتبر به عنوان فیلترهای پرس و جو ارائه شده باشد، مشکل مربوط به همه فضاهای نام را برطرف کنید
  • اگر فقط فضاهای نام نامعتبر به عنوان فیلترهای حذف به پرس و جو ارائه شده باشد، مشکل حذف شدن همه فضاهای نام را برطرف کنید.
  • رفع مشکلی که در آن داده های سند پس از یک نقطه خاص برای اسناد بسیار بزرگ نمایه نمی شوند
  • مشکلی را که در آن توکن‌سازی بخش‌هایی با نویسه‌های عددی غیر Ascii را حذف می‌کند، برطرف کنید
  • برای کمک به خروج از حالت بد بالقوه که مانع از شروع موفقیت آمیز می شود، بررسی تلاش های اولیه ناموفق متوالی را اضافه کنید.

نسخه 1.0.0-alpha03

21 جولای 2021

androidx.appsearch:appsearch-*:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 حاوی این commit ها است.

ویژگی های جدید

  • انتشار Backend Storage Platform برای اینکه به مشتریان اجازه دهد از 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 حاوی این commit ها است.

ویژگی های جدید

  • پشتیبانی کامل از زبان های چینی / ژاپنی / کره ای / تایلندی
  • کاهش اندازه 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 حاوی این commit ها است.

ویژگی های جدید

AppSearch یک کتابخانه جستجو برای مدیریت داده های ساختاری ذخیره شده محلی است، با API هایی برای نمایه سازی داده ها و بازیابی داده ها از طریق جستجوی متن کامل. از آن برای ایجاد قابلیت های جستجوی درون برنامه ای سفارشی برای کاربران خود استفاده کنید. این نسخه اولیه 1.0.0-alpha01 است.