{
  "schema": "leumas.docs.page/1",
  "id": "adapter:domain/search",
  "slug": "adapters/domain/search",
  "kind": "capabilities",
  "bucket": "package",
  "title": "search (adapter system)",
  "name": "search",
  "eyebrow": "adapter system",
  "chip": null,
  "summary": "Universal search adapter system: run a query across one or many pluggable back-ends (in-memory array, injected search clients, HTTP JSON endpoints) and merge/rank the hits. Back-ends are injected so...",
  "keywords": [
    "search",
    "back-ends",
    "runadapter",
    "credentials",
    "merge",
    "leumas search",
    "universal",
    "rank"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "# search (adapter system)\n\nUniversal **query runner**. Ported from `leumas-middleware/lib/a.search`, whose whole point (per its\n`goal.txt`) is the `runAdapter` helper that dispatches a query into one back-end or many — fs, mongodb,\na google engine, any third party. The empty per-provider stubs and tests were stripped.\n\nBack-ends are **injected** as `{ name, search(query, opts) -> hit[] }` (or a plain fn), so the engine\ncarries no credentials. A built-in `\"memory\"` back-end (substring-scored array search) makes it useful\nwith zero external deps.\n\n## Tools (`adapters`)\n\n| tool | args | result |\n|------|------|--------|\n| `runAdapter` | `{ query, backend?, options? }` | `{ backend, results }` |\n| `runAdapters` | `{ query, backends[], options? }` | `{ query, count, results, sources }` (merged + ranked) |\n| `memory` | `{ query, records[], fields? }` | `{ results }` |\n",
  "source": {
    "path": "shared/engines/adapters/domain/search/README.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 1037,
    "hash": "ff2d5e42393eeda8116d0fe2e6e72c1c5d1bec60"
  },
  "urls": {
    "html": "/p/adapters/domain/search",
    "json": "/docs/adapters/domain/search.json",
    "md": "/docs/adapters/domain/search.md"
  },
  "links": {
    "composes": [],
    "usedBy": [],
    "product": [],
    "howTo": [],
    "skills": []
  }
}
