rxdb-plugin-search
@aiao/rxdb 的全局搜索插件。基于 SQLite FTS5,为标注 searchable: true 字段的 collection 提供响应式全文检索。
仅兼容
@aiao/rxdb-adapter-sqlite-wasm适配器;其他适配器将在数据库创建阶段 fail-fast。
安装
pnpm add @aiao/rxdb @aiao/rxdb-plugin-search @aiao/rxdb-adapter-sqlite-wasm rxjs
用法
import { RxDBPluginSearch, rxDBPluginSearch } from '@aiao/rxdb-plugin-search';
rxDBPluginSearch/RxDBPluginSearch:注册搜索插件createSearchHandle:创建响应式搜索句柄assertSearchableSchemaValid/collectInvalidSearchableFields:schema 校验- 错误类型:
SearchError、SearchExecutionError、SearchSchemaMismatchError、SearchUnsupportedAdapterError等
框架绑定:Angular 用 @aiao/rxdb-plugin-search-angular,React 用 @aiao/rxdb-plugin-search-react,Vue 用 @aiao/rxdb-plugin-search-vue。
文档
- 仓库主页:https://github.com/aiao-io/aiao
- 插件指南见项目文档站
License
rxdb-plugin-search - RxDB 全局搜索插件
基于 SQLite FTS5 为标注 searchable: true 字段的 collection 提供响应式全文检索。
Remarks
仅兼容 @aiao/rxdb-adapter-sqlite-wasm 适配器;其他适配器将在数据库创建阶段 fail-fast。
Classes
| Class | Description |
|---|---|
| RxDBPluginSearch | @aiao/rxdb-plugin-search 主类。 |
| SearchEncryptedFieldError | 一个字段同时声明 encrypted: true 与 searchable: true。 |
| SearchError | @aiao/rxdb-plugin-search 错误基类。 |
| SearchExecutionError | 运行时执行错误(SQL 失败 / 存储不可用);可通过 SearchHandle.retry 恢复。 |
| SearchSchemaMismatchError | FTS5 迁移签名与当前 schema 冲突;启动即抛,阻止挂载。 |
| SearchUnsupportedAdapterError | 当前数据库使用了非 sqlite-wasm 的 adapter;在 createRxDatabase 阶段 fail-fast, 插件不挂载 .search,不返回降级 Handle。 |
Interfaces
| Interface | Description |
|---|---|
| CreateSearchHandleOptions | SearchHandle 工厂配置。 |
| InvalidSearchableField | Schema 校验失败详情。 |
| ResolveScopeInput | 解析参与聚合的 collection 范围。 |
| SearchHandle | 由 collection.search() / rxDB.search() 返回的响应式句柄。 |
| SearchOptions | 单次搜索请求的可调参数;可覆盖 SearchPluginOptions 全局默认。 |
| SearchPage | 单页查询结果 + 是否还有下一页。 |
| SearchPluginOptions | rxDBPluginSearch(options) 的初始化选项。 |
| SearchResult | 单条搜索命中。 |
| SearchSourceLike | 暴露 search() 方法的最小数据源形状(RxDB / RxCollection)。 |
Type Aliases
| Type Alias | Description |
|---|---|
| PerformSearch | 由 plugin.ts 注入的"真正干活"函数:给定查询词与页号,返回该页结果。 |
| SearchState | SearchHandle 状态机五态。 |
Variables
| Variable | Description |
|---|---|
| rxDBPluginSearch | 插件工厂;与 rxDBPluginTrigger 等同形态。 |
| SEARCHABLE_PROPERTY_TYPES | 合法的 searchable 字段类型集合。 |
Functions
| Function | Description |
|---|---|
| assertSearchableSchemaValid | 汇总式校验:遇到任何非法字段即抛错,否则静默通过。 |
| collectInvalidSearchableFields | 扫描 entity metadata 中所有被显式标注 searchable: true 的字段, 收集类型不合法(非 string/enum/stringArray)的条目。 |
| createSearchHandle | 组装 SearchHandle。调用方只需关心状态流与生命周期管理。 |
| resolveSearchScope | 计算最终参与搜索聚合的 collection 名列表(保持与 candidates 同序、去重)。 |