AppSearch

AppSearch 裝置端搜尋程式庫可管理本機儲存的結構化資料,並且提供 API 供資料索引與擷取 (透過全文搜尋) 作業使用。您可以使用這項功能為使用者建構自訂應用程式內搜尋功能。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2022 年 8 月 24 日 - - - 1.1.0-alpha02

宣告依附元件

如要新增 AppSearch 的依附元件,必須將 Google Maven 存放區新增至您的專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
    def appsearch_version = "1.1.0-alpha02"

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

    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。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 文件

1.1 版本

1.1.0-alpha02 版本

2022 年 8 月 24 日

發布 androidx.appsearch:appsearch-*:1.1.0-alpha021.1.0-alpha02 版本包含以下修訂項目。

新功能

  • 使用索引壓縮 (而非從頭開始重建索引) 加快最佳化程序
  • 將原生記錄標記從「icing」變更為「AppSearchIcing」,根據預設記錄 INFO 訊息

API 變更

  • 新增用於處理路徑的 PropertyPath 物件,以及可接受 PropertyPath 的新 addProjection 方法 (I45588)。
  • 已將 builtin:Thing 新增至 AppSearch 內建類型 (I55427)
  • 盡早避免 GenericDocument 中出現空白屬性名稱 (先前是在建立索引時,現在是在 GenericDocument.Builder.build() 時進行避免) (I9e780)

修正錯誤

  • 已移除不必要的字串格式,以改善 RELEVANCE 評分效能
  • 遇到無法讀取或已刪除的文件時,可更高效地使用分頁模式
  • 為放棄的查詢實作了垃圾收集
  • 修正文件的巢狀索引支援。先前,系統會忽略 indexNestedProperties (Iae9a6)。

外部貢獻

  • Shea Smith:修正文件的巢狀索引支援 (Iae9a6)。

1.1.0-alpha01 版本

2022 年 6 月 15 日

發布 androidx.appsearch:appsearch-*:1.1.0-alpha01。1.1.0-alpha01 版本以私人的預先發布分支版本開發,並無公開修訂版本。

API 變更

  • 所有傳回 ListenableFuture 的方法都已重新命名,已加上 Async 後置字串。舉例來說,getSchema 已重新命名為 getSchemaAsync。舊版已淘汰,並將在日後推出的版本中移除。

新功能

  • 首次推出的 appsearch-buildin 類型。此專案包含一些以 schema.org 為基礎的內建類型,可讓用戶端更容易使用,而不是自行定義一般物件的類型。我們會在日後推出的版本中加入更多類型。
  • 可使用 ShortcutAdapter 轉換 AppSearch 文件至 ShortcutInfoCompat 的能力。這可為用戶端提供方式,允許使用 core-google-shortcuts 程式庫將 AppSearch 文件分享到 Google
  • 可沿用 @Document 類別的機制。欄位無法替換或修改,但可以使用 @Document 備註擴充新的類別以加入新的欄位。
  • 新推出的 Observer API 可讓用戶端在他們可存取的類型變更,或新增、修改或移除這些類型的文件時,接收通知。重要事項:目前的實作只會在應用程式執行時傳送通知。目前您無法檢查應用程式停止期間發生的變更。因此,建議您不要依賴此 API 取得完整性資訊。
  • Property parser API 可讓您完整處理及檢查 MatchInfo#getPropertyPath 傳回的屬性路徑。
  • 全域 getById 和全域 getSchema API,可從您已獲得瀏覽權限的其他應用程式擷取文件和結構定義。
  • 針對您具有存取權的資料,可擷取 getSchema 瀏覽權限資訊
  • 可授予含有特定 Android 權限的應用程式瀏覽權限 (限制為限定的許可清單權限)
  • 除了先前支援的樣式 hasFoo() 之外,註解處理工具中的布林值欄位也支援 isFoo() 樣式的 getter
  • 支援在 @RequiresFeature 保護的新功能。請使用 AppSearchSession#getFeatures 判定目前的後端支援的項目。
  • 移除個別文件的權杖上限 (約 13,000 個)
  • 允許比對非 ASCII 和非英數字元,例如:表情符號

修正錯誤

  • 修正覆寫與建立巢狀結構不相容的類型時,會導致 SetSchema 失敗的錯誤。
  • 進行修正以完整支援 @AutoValue 註解類別 (做為 AppSearch @Document 類別使用)
  • 修正有關文件類別重複清單和其他問題的一些當機情形
  • 修正在特定情況下會導致前置字串搜尋中斷的錯誤
  • 修正 GetStorageInfo 中會在發生 IO 錯誤時傳回不正確的值的細微錯誤
  • 修正讀取文件時發生的 BUSADDERR 問題
  • 修正列印未格式化指紋造成的 Logcat 損毀問題
  • 修正因 IO 失敗而造成的 NPE
  • 修正 GetSchemaTypeGetDeleteDeleteByNamespaceDeleteBySchemaType 中的記憶體流失問題

1.0.0 版本

1.0.0-alpha04 版本

2021 年 11 月 3 日

發布 androidx.appsearch:appsearch-*:1.0.0-alpha041.0.0-alpha04 版包含這些修訂版本。

新功能

  • Guava ListenableFuture 依附元件自動成為 API 依附元件

API 變更

  • 新增 SearchResult#getSubmatchRange() 和 SearchResult#getSubmatch() 以提供更多與每個相符項目相關的資訊。(I2fef6)
  • 詳細說明如何產生 PackageIdentifier 指紋,以依 packagename+certificate 共用資料

修正錯誤

  • 修正使用者在結果組合結束後嘗試擷取結果網頁時發生的當機問題
  • 修正如果只提供無效命名空間做為查詢篩選條件,就會查詢所有命名空間的問題
  • 修正如果只提供無效命名空間做為「依據查詢進行移除」的篩選條件,就會移除所有命名空間的問題
  • 修正文件過大時,在某個階段後文件資料停止編入索引的問題
  • 修正權杖化會刪除含有非 Ascii 數字半形字元的區隔問題
  • 針對連續失敗的初始化嘗試來新增檢查功能,以協助排除無法成功初始化的潛在錯誤狀態。

1.0.0-alpha03 版本

2021 年 7 月 21 日

發布 androidx.appsearch:appsearch-*:1.0.0-alpha031.0.0-alpha03 版本包含以下修訂項目。

新功能

  • 發布平台儲存空間後端,允許用戶端在 Android S 新推出的 android.app.appsearch.AppSearchManager 服務中使用 AppSearch API。詳情請參閱 AppSearch 開發人員指南。
  • AutoValue 的註解處理工具支援
  • 移除單一字串屬性的大小上限
  • 新的儲存空間格式,可縮短初始化延遲時間
  • 從舊儲存空間格式到新儲存空間的一次性內部資料遷移作業

修正錯誤

  • 插入新文件時可正確地強制執行文件上限
  • 修正建立 AppSearchSession 時的當機問題
  • 修正 SetSchema 中未偵測到某些回溯不相容性情況及索引不相容問題的錯誤

1.0.0-alpha02 版本

2021 年 6 月 30 日

發布 androidx.appsearch:appsearch:1.0.0-alpha02androidx.appsearch:appsearch-compiler:1.0.0-alpha02androidx.appsearch:appsearch-local-storage:1.0.0-alpha021.0.0-alpha02 版本包含這些修訂版本。

新功能

  • 支援中文/日文/韓文/泰文
  • 縮減 androidx.appsearch:appsearch-local-storage 大小
  • 移除重複屬性的大小上限
  • 允許重複使用建構工具類別
  • 改善特定物件的 toString(),以簡化偵錯作業
  • Javadoc 文件改善項目

API 變更

  • SearchResult#getMatches 已重新命名為 SearchResult#getMatchInfos
  • @Document.Int64Property 已重新命名為 @Document.LongProperty

修正錯誤

  • 針對結果程式碼片段的計算進行改善與修正
  • 修正 AppSearchSession 初始化作業中的錯誤

1.0.0-alpha01 版本

2021 年 5 月 5 日

發布 androidx.appsearch:appsearch:1.0.0-alpha01androidx.appsearch:appsearch-compiler:1.0.0-alpha01androidx.appsearch:appsearch-local-storage:1.0.0-alpha011.0.0-alpha01 版本包含這些修訂版本。

新功能

AppSearch 搜尋程式庫可管理本機儲存的結構化資料,並且提供 API 供資料索引與擷取 (透過全文搜尋) 作業使用。您可以使用這項功能為使用者建構自訂應用程式內搜尋功能。初始版本為 1.0.0-alpha01