語言

AppSearchManager 類別

定義

提供系統維護的集中式 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
繼承
AppSearchManager
屬性

備註

提供系統維護的集中式 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 -&gt; {
                 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 -&gt; {
                 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 -&gt; {
                 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

回傳此 Object的執行時類別。

(繼承來源 Object)
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)

創造一個新的 EnterpriseGlobalSearchSession

CreateGlobalSearchSession(IExecutor, IConsumer)

會產生一個新的 GlobalSearchSession。

CreateSearchSession(AppSearchManager+SearchContext, IExecutor, IConsumer)

會產生一個新的 AppSearchSession。

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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

提供系統維護的集中式 AppSearch 索引存取。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於