AppSearchManager 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供系統維護的集中式 AppSearch 索引存取。
[Android.Runtime.Register("android/app/appsearch/AppSearchManager", ApiSince=31, DoNotGenerateAcw=true)]
public class AppSearchManager : Java.Lang.Object
[<Android.Runtime.Register("android/app/appsearch/AppSearchManager", ApiSince=31, DoNotGenerateAcw=true)>]
type AppSearchManager = class
inherit Object
- 繼承
- 屬性
備註
提供系統維護的集中式 AppSearch 索引存取。
AppSearch 是一個離線、裝置端的搜尋函式庫,用於管理結構化資料,包含:
<UL><LI>API 可透過全文搜尋索引與檢索資料。
<li>一個應用程式的 API,可明確授權其資料的讀取權限給其他應用程式。
<
>詳見:SetSchemaRequest.Builder#setSchemaTypeVisibilityForPackage</b><li>一個應用程式可選擇是否讓其資料由系統指定的全域查詢者顯示於系統介面表面的 API。
<b>參見: SetSchemaRequest.Builder#setSchemaTypeDisplayedBySystem</b></ul>
應用程式透過開啟 AppSearchSession. 來建立資料庫。
範例:
AppSearchManager appSearchManager = context.getSystemService(AppSearchManager.class);
AppSearchManager.SearchContext searchContext = new AppSearchManager.SearchContext.Builder().
setDatabaseName(dbName).build());
appSearchManager.createSearchSession(searchContext, mExecutor, appSearchSessionResult -> {
mAppSearchSession = appSearchSessionResult.getResultValue();
});
開啟會話後,必須設定結構以定義資料的組織結構。 該結構透過呼叫 AppSearchSession#setSchema來設定。 該結構由一組 AppSearchSchema 物件組成,每個物件定義了獨特的資料類型。
範例:
AppSearchSchema emailSchemaType = new AppSearchSchema.Builder("Email")
.addProperty(new StringPropertyConfig.Builder("subject")
.setCardinality(PropertyConfig.CARDINALITY_OPTIONAL)
.setIndexingType(PropertyConfig.INDEXING_TYPE_PREFIXES)
.setTokenizerType(PropertyConfig.TOKENIZER_TYPE_PLAIN)
.build()
).build();
SetSchemaRequest request = new SetSchemaRequest.Builder().addSchema(emailSchemaType).build();
mAppSearchSession.set(request, mExecutor, appSearchResult -> {
if (appSearchResult.isSuccess()) {
// Schema has been successfully set.
}
});
AppSearch 中基本的資料單位以物件表示 GenericDocument ,包含 ID、命名空間、壽命、分數與屬性。 命名空間組織一組邏輯文件。 例如,可以建立一個命名空間,以依每個帳號分組文件。 ID 用來識別命名空間內的單一文件。 命名空間與 ID 的組合能在資料庫中唯一識別 a GenericDocument 。
一旦架構設定完成, GenericDocument 物件即可放入資料庫並透過呼叫 AppSearchSession#put進行索引。
範例:
// Although for this example we use GenericDocument directly, we recommend extending
// GenericDocument to create specific types (i.e. Email) with specific setters/getters.
GenericDocument email = new GenericDocument.Builder<>(NAMESPACE, ID, EMAIL_SCHEMA_TYPE)
.setPropertyString(“subject”, EMAIL_SUBJECT)
.setScore(EMAIL_SCORE)
.build();
PutDocumentsRequest request = new PutDocumentsRequest.Builder().addGenericDocuments(email)
.build();
mAppSearchSession.put(request, mExecutor, appSearchBatchResult -> {
if (appSearchBatchResult.isSuccess()) {
// All documents have been successfully indexed.
}
});
在資料庫內搜尋時,會呼叫 AppSearchSession#search 並提供查詢字串作為搜尋,以及一個 SearchSpec。
或者, AppSearchSession#getByDocumentId 也可以呼叫 來依命名空間和 ID 檢索文件。
文件移除可以透過存活時間到期或明確呼叫移除操作來完成。 移除操作可透過命名空間與 ID AppSearchSession#remove(RemoveByDocumentIdRequest, Executor, BatchResultCallback)執行,或透過查詢 AppSearchSession#remove(String, SearchSpec, Executor, Consumer)執行。
Java 文件 android.app.appsearch.AppSearchManager。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| AppSearchManager(IntPtr, JniHandleOwnership) |
提供系統維護的集中式 AppSearch 索引存取。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| JniPeerMembers |
提供系統維護的集中式 AppSearch 索引存取。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
提供系統維護的集中式 AppSearch 索引存取。 |
| ThresholdType |
提供系統維護的集中式 AppSearch 索引存取。 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| CreateEnterpriseGlobalSearchSession(IExecutor, IConsumer) |
創造一個新的 |
| CreateGlobalSearchSession(IExecutor, IConsumer) |
會產生一個新的 |
| CreateSearchSession(AppSearchManager+SearchContext, IExecutor, IConsumer) |
會產生一個新的 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| Equals(Object) |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
提供系統維護的集中式 AppSearch 索引存取。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
提供系統維護的集中式 AppSearch 索引存取。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |