跳到主要内容

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 校验
  • 错误类型:SearchErrorSearchExecutionErrorSearchSchemaMismatchErrorSearchUnsupportedAdapterError

框架绑定:Angular 用 @aiao/rxdb-plugin-search-angular,React 用 @aiao/rxdb-plugin-search-react,Vue 用 @aiao/rxdb-plugin-search-vue

文档

License

MIT

rxdb-plugin-search - RxDB 全局搜索插件

基于 SQLite FTS5 为标注 searchable: true 字段的 collection 提供响应式全文检索。

Remarks

仅兼容 @aiao/rxdb-adapter-sqlite-wasm 适配器;其他适配器将在数据库创建阶段 fail-fast。

Classes

ClassDescription
RxDBPluginSearch@aiao/rxdb-plugin-search 主类。
SearchEncryptedFieldError一个字段同时声明 encrypted: truesearchable: true
SearchError@aiao/rxdb-plugin-search 错误基类。
SearchExecutionError运行时执行错误(SQL 失败 / 存储不可用);可通过 SearchHandle.retry 恢复。
SearchSchemaMismatchErrorFTS5 迁移签名与当前 schema 冲突;启动即抛,阻止挂载。
SearchUnsupportedAdapterError当前数据库使用了非 sqlite-wasm 的 adapter;在 createRxDatabase 阶段 fail-fast, 插件不挂载 .search,不返回降级 Handle。

Interfaces

InterfaceDescription
CreateSearchHandleOptionsSearchHandle 工厂配置。
InvalidSearchableFieldSchema 校验失败详情。
ResolveScopeInput解析参与聚合的 collection 范围。
SearchHandlecollection.search() / rxDB.search() 返回的响应式句柄。
SearchOptions单次搜索请求的可调参数;可覆盖 SearchPluginOptions 全局默认。
SearchPage单页查询结果 + 是否还有下一页。
SearchPluginOptionsrxDBPluginSearch(options) 的初始化选项。
SearchResult单条搜索命中。
SearchSourceLike暴露 search() 方法的最小数据源形状(RxDB / RxCollection)。

Type Aliases

Type AliasDescription
PerformSearch由 plugin.ts 注入的"真正干活"函数:给定查询词与页号,返回该页结果。
SearchStateSearchHandle 状态机五态。

Variables

VariableDescription
rxDBPluginSearch插件工厂;与 rxDBPluginTrigger 等同形态。
SEARCHABLE_PROPERTY_TYPES合法的 searchable 字段类型集合。

Functions

FunctionDescription
assertSearchableSchemaValid汇总式校验:遇到任何非法字段即抛错,否则静默通过。
collectInvalidSearchableFields扫描 entity metadata 中所有被显式标注 searchable: true 的字段, 收集类型不合法(非 string/enum/stringArray)的条目。
createSearchHandle组装 SearchHandle。调用方只需关心状态流与生命周期管理。
resolveSearchScope计算最终参与搜索聚合的 collection 名列表(保持与 candidates 同序、去重)。