ReadOnlyGlobalSearchSession


interface ReadOnlyGlobalSearchSession

Known direct subclasses
EnterpriseGlobalSearchSession

Provides a connection to all enterprise (work profile) AppSearch databases the querying application has been granted access to.

GlobalSearchSession

Provides a connection to all AppSearch databases the querying application has been granted access to.


Provides a connection to query over all AppSearch databases that the calling application has been granted access to.

This interface is strictly for read-only operations, such as searching for documents (search), retrieving documents by ID (getByDocumentIdAsync), and fetching schemas (getSchemaAsync). It does not include methods for writing data.

All implementations of this interface must be thread safe.

See also
AppSearchSession

Summary

Public functions

ListenableFuture<AppSearchBatchResult<String!, GenericDocument!>!>
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.GLOBAL_SEARCH_SESSION_GET_BY_ID)
getByDocumentIdAsync(
    packageName: String,
    databaseName: String,
    request: GetByDocumentIdRequest
)

Retrieves GenericDocument documents, belonging to the specified package name and database name and identified by the namespace and ids in the request, from the GlobalSearchSession database.

Features

Returns the Features to check for the availability of certain features for this session.

ListenableFuture<GetSchemaResponse!>
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.GLOBAL_SEARCH_SESSION_GET_SCHEMA)
getSchemaAsync(packageName: String, databaseName: String)

Retrieves the collection of schemas most recently successfully provided to setSchemaAsync for any types belonging to the requested package and database that the caller has been granted access to.

SearchResults
search(queryExpression: String, searchSpec: SearchSpec)

Retrieves documents from all AppSearch databases that the querying application has access to.

Public functions

getByDocumentIdAsync

Added in 1.2.0-alpha01
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.GLOBAL_SEARCH_SESSION_GET_BY_ID)
fun getByDocumentIdAsync(
    packageName: String,
    databaseName: String,
    request: GetByDocumentIdRequest
): ListenableFuture<AppSearchBatchResult<String!, GenericDocument!>!>

Retrieves GenericDocument documents, belonging to the specified package name and database name and identified by the namespace and ids in the request, from the GlobalSearchSession database. When a call is successful, the result will be returned in the successes section of the AppSearchBatchResult object in the callback. If the package doesn't exist, database doesn't exist, or if the calling package doesn't have access, these failures will be reflected as AppSearchResult objects with a RESULT_NOT_FOUND status code in the failures section of the AppSearchBatchResult object.

Parameters
packageName: String

the name of the package to get from

databaseName: String

the name of the database to get from

request: GetByDocumentIdRequest

a request containing a namespace and IDs of the documents to retrieve.

getFeatures

Added in 1.2.0-alpha01
fun getFeatures(): Features

Returns the Features to check for the availability of certain features for this session.

getSchemaAsync

Added in 1.2.0-alpha01
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.GLOBAL_SEARCH_SESSION_GET_SCHEMA)
fun getSchemaAsync(packageName: String, databaseName: String): ListenableFuture<GetSchemaResponse!>

Retrieves the collection of schemas most recently successfully provided to setSchemaAsync for any types belonging to the requested package and database that the caller has been granted access to.

If the requested package/database combination does not exist or the caller has not been granted access to it, then an empty GetSchemaResponse will be returned.

Parameters
packageName: String

the package that owns the requested AppSearchSchema instances.

databaseName: String

the database that owns the requested AppSearchSchema instances.

Returns
ListenableFuture<GetSchemaResponse!>

The pending GetSchemaResponse containing the schemas that the caller has access to or an empty GetSchemaResponse if the request package and database does not exist, has not set a schema or contains no schemas that are accessible to the caller.

search

Added in 1.2.0-alpha01
fun search(queryExpression: String, searchSpec: SearchSpec): SearchResults

Retrieves documents from all AppSearch databases that the querying application has access to.

Applications can be granted access to documents by specifying setSchemaTypeVisibilityForPackage, or setDocumentClassVisibilityForPackage when building a schema.

Document access can also be granted to system UIs by specifying setSchemaTypeDisplayedBySystem, or setDocumentClassDisplayedBySystem when building a schema.

See search for a detailed explanation on forming a query string.

This method is lightweight. The heavy work will be done in getNextPageAsync.

Parameters
queryExpression: String

query string to search.

searchSpec: SearchSpec

spec for setting document filters, adding projection, setting term match type, etc.

Returns
SearchResults

a SearchResults object for retrieved matched documents.