HTTP API routes and admin web UI handlers for boundary-search.
API Endpoints (mounted under /api/v1): POST /search/:index-id — search POST /search/:index-id/suggest — trigram suggestions POST /search/documents — index a document DELETE /search/documents/:type/:id — remove a document
Admin Web UI (mounted under /web/admin): GET /search — list all indices GET /search/:index-id — index detail + live search form POST /search/:index-id/search — HTMX search results fragment
HTTP API routes and admin web UI handlers for boundary-search. API Endpoints (mounted under /api/v1): POST /search/:index-id — search POST /search/:index-id/suggest — trigram suggestions POST /search/documents — index a document DELETE /search/documents/:type/:id — remove a document Admin Web UI (mounted under /web/admin): GET /search — list all indices GET /search/:index-id — index detail + live search form POST /search/:index-id/search — HTMX search results fragment
Integrant lifecycle management for the search module.
Config keys:
:boundary/search {:db-ctx (ig/ref :boundary/db-context)}
Returns {:store <ISearchStore> :engine <ISearchEngine>}
:boundary/search-routes {:search-service (ig/ref :boundary/search)}
Returns {:api [...] :web [...] :static []} for composition by the HTTP handler.
Integrant lifecycle management for the search module.
Config keys:
:boundary/search
{:db-ctx (ig/ref :boundary/db-context)}
Returns {:store <ISearchStore> :engine <ISearchEngine>}
:boundary/search-routes
{:search-service (ig/ref :boundary/search)}
Returns {:api [...] :web [...] :static []} for composition
by the HTTP handler.No vars found in this namespace.
Database persistence for search documents.
Implements ISearchStore using next.jdbc + HoneySQL for DML and raw parameterized SQL for FTS-specific queries.
Two query strategies selected by db-type:
Database persistence for search documents. Implements ISearchStore using next.jdbc + HoneySQL for DML and raw parameterized SQL for FTS-specific queries. Two query strategies selected by db-type: - :postgresql — to_tsvector/plainto_tsquery + ts_rank + ts_headline - :h2 / :sqlite — LOWER/LIKE fallback (used in tests and dev)
Load-time registry of search index definitions.
The registry is mutable process state, so it lives in the shell — the core
(boundary.search.core.index) stays pure (document construction and filter-key
conversion only). Definitions are registered at namespace load via the
defsearch macro and read at runtime by the search service.
Key functions:
Load-time registry of search index definitions. The registry is mutable process state, so it lives in the shell — the core (boundary.search.core.index) stays pure (document construction and filter-key conversion only). Definitions are registered at namespace load via the `defsearch` macro and read at runtime by the search service. Key functions: - defsearch macro — define and register an index - register-search! — low-level registration - get-search — look up by index-id - list-searches — list registered index ids - clear-registry! — reset registry (test fixtures)
SearchService orchestrates document indexing and search queries.
Implements ISearchEngine by coordinating:
SearchService orchestrates document indexing and search queries. Implements ISearchEngine by coordinating: - core/index — document construction - core/query — query sanitization - shell/registry — index definition registry - ISearchStore — persistence operations
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |