AppSearch:应用内全文搜索 · AndroidX 源码指南
AAndroidX 源码指南
基础工具
基础工具 · 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,可配合 Guava Futures 或转成协程。
  • 搜索词支持前缀匹配,具体匹配行为由属性的 INDEXING_TYPE 决定。
  • 该库面向系统级搜索集成,普通搜索场景可考虑 Room + FTS。

On this page