AppSearch
最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 12 月 11 日 | - | - | - | 1.1.0-alpha07 |
宣告依附元件
如要新增 AppSearch 的依附元件,必須將 Google Maven 存放區新增至您的專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 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。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 文件。
1.1 版本
1.1.0-alpha07 版本
2024 年 12 月 11 日
發布 androidx.appsearch:appsearch-*:1.1.0-alpha07
。1.1.0-alpha07 版本包含這些修訂項目。
新功能
- 在尚未穩定的新 API 途徑中新增
ExperimentalAppSearchApi
註解。(Ib09f4) - 支援透過
AppSearchSession#openBlobForWriteAsync
和相關方法,有效儲存及共用二進位 blob 資料 - 支援透過
matchScoreExpression
函式,根據評分運算式篩選查詢結果 (Id525a) - 支援從父項文件傳播至子項文件的刪除作業。(Ia032d)
- 支援嵌入量化 API,在輕微損失品質的情況下提升嵌入效能。(Id8a07)。
- 支援在
SearchSpec
中使用addFilterDocumentIds
API,將搜尋範圍限制在特定文件。(I7c6f1)。
API 變更
- 將父項類型資訊從
GenericDocument
移至SearchResult
。(I34a1d) - 支援
TakenAction
API 中的新動作類型,包括DismissAction
和ImpressionAction
。(I0c6c7)。 - 新增 AppSearch 內建結構定義
WebPage
。(I28127)
1.1.0-alpha06 版本
2024 年 10 月 16 日
發布 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)。 - 將節點介面新增至
AppSearch
,以便定義節點。(If42fb)。 - 為
AppSearch
新增實驗性 API 註解。(I3e57c)
修正錯誤
- 新增
TextNodes
以保留條件。(Iefd02)
安全性修正
- 自這項異動起,androidx 會針對 protobuf 4.28.2 進行編譯,以解決 CVE-2024-7254 問題。將
androidx.appsearch:appsearch-external-protobuf
的依附元件升級至最新的 1.1.0-alpha06,以解決安全漏洞風險。
1.1.0-alpha05 版本
2024 年 9 月 4 日
發布 androidx.appsearch:appsearch-*:1.1.0-alpha05
。1.1.0-alpha05 版本包含這些修訂項目。
API 變更
- 淘汰不必要的
setEmbeddingSearchEnabled
和getEmbeddingSearchEnabled
。刪除setListFilterTokenizeFunctionEnabled
和getListFilterTokenizeFunctionEnabled
。刪除「tokenize」查詢函式。已改用getSearchStringParameter
查詢函式和addSearchStringParameter
函式。(I09f5a)。 - 將
Alarm#getComputingDevice
重新命名為getOriginatingDevice
。(I63121)。
1.1.0-alpha04 版本
2024 年 8 月 7 日
發布 androidx.appsearch:appsearch-*:1.1.0-alpha04
。1.1.0-alpha04 版包含這些修訂版本。
新功能
- 支援新的
PlayServicesStorage
實作方式,可在舊裝置上使用AppSearch
,而不會產生LocalStorage
的大量 APK 大小成本。這個儲存空間實作方式是將應用程式資料儲存在 Play 服務應用程式中。 - 在搭載 Android 15 的裝置上支援新的 API。
- 支援透過嵌入向量搜尋資料庫,允許模糊比對。(I2b41b)。
- 支援
AppSearch
結構定義模型中的父類型和多型態。(I06118)。 - 支援
TakenAction
API,讓應用程式在使用者點選或放棄結果時回報,以便在後續搜尋期間提升品質。(I54091)。 - 透過引入新的
@Document.BuilderProducer
註解,在註解處理工具中支援含有建構工具的類別。(Iec30a)。 - 支援更精細的控制項,可控制要為巢狀文件的哪些屬性建立索引。(Iec30a)。
- 支援將搜尋結果篩選為特定文件屬性。(Ib2659)
- 允許 OR 和 AND 的瀏覽權限設定,以支援更精細的瀏覽權限設定。(I0274b)
- 支援將資料的顯示權限授予所有可查看擁有應用程式 (公開顯示權限) 的應用程式。(I992e4)。
- 只擷取在特定屬性中填入資料的結果。(I7d94f)。
- 支援在個人資料中擷取企業聯絡人。(Idd587)
API 變更
- 將
indexableNestedPropertiesList
和inheritIndexableNestedPropertiesFromSuperclass
註解參數新增至 AppSearch 的Document.DocumentProperty
註解,以便為特定巢狀資源路徑建立索引。(Iec30a)。 - 支援建構函式,以便在
AppSearch
註解處理工具中建立建構函式例項 (I265c9) - 更新
AppSearch
註解處理工具,以支援設定多型父項類型 (I06118) - 新增
GetSchemaRequest
方法,用於清除瀏覽權限設定 (I38379) - 在 AppSearch 中支援
addParentType
,以便進行多型化 (Ida14a) - 新增其他排名運算式的 API (I5d9f4)
- 新增
SearchAction
API (I54091) - 新增
AppSearch
類型的說明欄位 (I84762) - 將嵌入搜尋查詢和排名 API 到
AppSearch
(I0f6c3) - 移除
getDeletionPropagation
(I21192)
1.1.0-alpha03 版本
2023 年 5 月 24 日
發布 androidx.appsearch:appsearch-*:1.1.0-alpha03
。1.1.0-alpha03 版包含此連結所列的修訂項目。
新功能
- 支援進階查詢 API、進階評分 API 和數字搜尋。(I02d48)。
- 新增
LocalStorage.createGlobalSearchSession
API,可在單一應用程式的本機儲存空間中搜尋所有資料庫。Id3c89 - 新增 API,可根據 ID 彙整文件 (Iaecfa)
- 使用
RANKING_STRATEGY_RELEVANCE_SCORING
時,支援屬性權重以標記特定屬性更為重要。(I069b9)。 - 新增 Person 和
ContactPoint
,以便在AppSearch
中查詢 Person 語料庫。(Ia58f9) - 新增了以 http://schema.org/ImageObject 為範本的新文件類型
ImageObject
。(I6a0c0) - 新增
VERBATIM
分詞器,可在AppSearch
不解讀的情況下新增屬性。(I47bc0) - 新增
RFC822_TOKENIZATION
做為分詞器類型,可將電子郵件地址進行符串化。(I8a390) - 在「偵錯」檢視畫面中啟用全域搜尋功能。(I51fb2)。
API 變更
- 已移除傳回
ListenableFuture
且沒有 Async 後置字串的方法。(I0515f)。 - 新增可透過
Document
類別設定投影功能。(I94576)。 - 將欄位從
Thing
新增至Alarm
、AlarmInstance
、Timer
、Stopwatch
、StopwatchLap
、ContactPoint
和Person
(Id876c)
修正錯誤
- 在 appsearch-platform-storage 中全面支援 Android 13 功能 (Ia8e61)
- 修正使用繼承功能時,覆寫結構定義名稱和私人欄位的問題。
1.1.0-alpha02 版本
2022 年 8 月 24 日
發布了 androidx.appsearch:appsearch-*:1.1.0-alpha02
。查看 1.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
- 修正
GetSchemaType
、Get
、Delete
、DeleteByNamespace
和DeleteBySchemaType
中的記憶體流失問題
1.0.0 版本
1.0.0-alpha04 版本
2021 年 11 月 3 日
發布 androidx.appsearch:appsearch-*:1.0.0-alpha04
。1.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-alpha03
。1.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-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 文件改善項目
API 變更
SearchResult#getMatches
已重新命名為SearchResult#getMatchInfos
@Document.Int64Property
已重新命名為@Document.LongProperty
修正錯誤
- 針對結果程式碼片段的計算進行改善與修正
- 修正 AppSearchSession 初始化作業中的錯誤
1.0.0-alpha01 版本
2021 年 5 月 5 日
發布 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 搜尋程式庫可管理本機儲存的結構化資料,並且提供 API 供資料索引與擷取 (透過全文搜尋) 作業使用。您可以使用這項功能為使用者建構自訂應用程式內搜尋功能。初始版本為 1.0.0-alpha01
。