feat: serve QQQ /qqq/v1/search from OpenSearch (record-search provider) #32

Closed
KofTwentyTwo wants to merge 1 commits from feature/record-search-provider into develop
pull from: feature/record-search-provider
1 Commits
Author SHA1 Message Date
James MaesandClaude Opus 5.5 75dc2b3b3d feat: serve QQQ /qqq/v1/search from OpenSearch (record-search provider)
Add QuickSearchRecordSearchProvider, an implementation of QQQ core's
RecordSearchProviderInterface (QRun-IO/qqq#1042), so RecordSearchAction
and POST /qqq/v1/search (the Next UI global search) are served from the
Quick Search index for the tables this QBit indexes (audit F-11, D1).

- Claims indexed, enabled tables; one _msearch request with a per-table
  top-N search (same query, AND semantics and field weights), returning
  record ids only, which core re-reads through QueryAction.
- recordSearchTimeoutMillis (default 2500) bounds the request; any
  failure makes core fall back to its own search and starts a 30 s
  backoff during which no tables are claimed.
- serveCoreRecordSearch (default true) registers the provider and gives
  indexed tables core searchFields when they have none; host
  searchFields and a host-registered provider are kept.
- PASSWORD fields are no longer indexed (like hidden fields).
- Build against qqq 4.1.0-SNAPSHOT until the SPI is released; version
  1.1.0-SNAPSHOT; README, MIGRATION-1.1, CHANGELOG.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:18:05 -05:00