# Milestone 5, Phase 4: Creator and People Search

## Goal

Prove that the same SEARCH pipeline that indexes items can also index creator entities. After this phase, a developer can call `db.search(&Search { entity_kind: Creator, query: "jazz" })` and receive BM25-ranked creators with optional vector fusion, filters, and sort modes.

## Motivation

m5p1–p3 built a complete SEARCH pipeline for items. Creators are a first-class entity in tidalDB with their own storage engine, metadata, and embeddings. Extending the pipeline to creators validates the multi-entity-kind design and unlocks the people-search use case.

## Tasks

| Task | Title | Status |
|------|-------|--------|
| task-01 | Creator Text Indexing | pending |
| task-02 | Creator Vector Index | pending |
| task-03 | Creator Search Executor | pending |

## Execution Order

```
task-01 (Creator Text Indexing)
    |
    v
task-02 (Creator Vector Index)
    |
    v
task-03 (Creator Search Executor)
```

All tasks are sequential.

## Verification

```bash
cargo check --manifest-path tidal/Cargo.toml
cargo clippy --manifest-path tidal/Cargo.toml -- -D warnings
cargo test --manifest-path tidal/Cargo.toml --lib
cargo test --manifest-path tidal/Cargo.toml --test m5p4_creator_search
cargo bench --manifest-path tidal/Cargo.toml --bench search -- bench_search_creator_text_200
```

**Key assertions:**
- `db.search(Search { entity_kind: Creator, query: "jazz" })` returns BM25-ranked creators
- `filter(verified = true)` excludes non-verified creators
- `similar_to` lookup triggers ANN on `(EntityKind::Creator, "content")` slot
- `bench_search_creator_text_200` < 20ms
- All existing m5p3 item search tests still pass
