Skip to content

Titles tier matches the whole query as one substring, not words in any order #75

Description

@dmwyatt

The titles tier of search_meetings (src/db/meetings.rs) matches title LIKE %query% COLLATE NOCASE: the entire query as a single substring. Every other tier (transcripts, notes, panels) goes through FTS5 with implicit-AND semantics, where each word must appear but in any order.

So grans grep "review budget" --in titles misses a meeting titled "Budget review", while the same query finds it in transcripts. The README's description of grep ("matches every word in the query, in any order") is inaccurate for the titles tier, and the divergence also feeds hybrid search, where the FTS list seeds keyword_ids and keyword_total.

Two ways to resolve it:

  1. Tokenize the titles tier: AND of per-token LIKE clauses (or index titles in FTS). Consistent semantics everywhere, but it changes grep counts, hybrid keyword_total, and the FTS candidate list, so it needs a quality-benchmark before/after run and a look at how the title-hit ranking tier should treat partial-token matches.
  2. Keep the behavior and document it: title matches require the query as a contiguous substring.

Option 1 is the first-principles fix; filing as triage because it moves retrieval behavior and deserves the benchmark gate. Noted during the #65 review (PR #73); pre-existing behavior, unchanged by that PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio: p2Medium priority, normal queuesize: mMedium, a few hours to a daystatus: code reviewAwaiting code reviewtype: bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions