基础工具
基础工具 · androidx.collection
AppSearch:应用内全文搜索Collection 1.7.0-alpha01
定义 Schema、写入文档、搜索与分页取结果。
最后更新 2026-08-01
复制即用
定义 schema 并写入:
import androidx.appsearch.app.AppSearchSchema;
import androidx.appsearch.app.AppSearchSession;
import androidx.appsearch.app.SetSchemaRequest;
import androidx.appsearch.app.PutDocumentsRequest;
AppSearchSchema schema = new AppSearchSchema.Builder("Note")
.addProperty(new AppSearchSchema.StringPropertyConfig.Builder("title")
.setCardinality(AppSearchSchema.PropertyConfig.CARDINALITY_OPTIONAL)
.setIndexingType(AppSearchSchema.StringPropertyConfig.INDEXING_TYPE_PREFIXES)
.build())
.build();
session.setSchemaAsync(
new SetSchemaRequest.Builder().addSchema(schema).build()
);写入文档:
AppSearchDocument document = new AppSearchDocument.Builder("Note", "uri://note/1")
.setPropertyString("title", "购物清单")
.build();
session.putAsync(
new PutDocumentsRequest.Builder().addDocument(document).build()
);搜索:
SearchResults results = session.searchAsync("购物", new SearchSpec.Builder().build());
List<SearchResult> page = results.getNextPageAsync().get();要点
- AppSearch 是应用内的全文搜索库,数据保存在本地、索引高效。
- 三步:定义 Schema →
putAsync写入 →searchAsync查询。 - 所有操作返回
ListenableFuture,可配合 GuavaFutures或转成协程。 - 搜索词支持前缀匹配,具体匹配行为由属性的
INDEXING_TYPE决定。 - 该库面向系统级搜索集成,普通搜索场景可考虑 Room + FTS。