Query language
One search language for every source. discatch translates it for each source and double-checks every result, so each source returns correct matches.
The search language follows what users of Octolens, Syften, and GummySearch already know. Terms match regardless of capitalization. Plurals and simple word forms match too. There is no regular-expression support in the first version.
Syntax
supabase term
"supabase auth" exact phrase
supabase OR firebase either
supabase AND pricing both (AND is implied between terms)
supabase -firebase exclude
supabase NOT firebase exclude
site:reddit.com/r/webdev restrict to a domain or path
author:@handle restrict to an author, where the source supports it
lang:en language
(supabase OR firebase) pricing groupingHow each source is searched
discatch maps the one search language onto each source’s own search, then checks every result again against your full search. A source with a weaker built-in search still returns correct results, drawn from a larger pool.
| Source | How discatch searches it |
|---|---|
| web, news | built-in operators pass through, and site: and quotes map directly |
| hackernews | your terms plus tags and number filters for the time range |
| discourse | each forum searched on its own, with after: and category: filters |
| github | GitHub search filters such as in:title,body, repo:, and is:issue |
| stackexchange | site and tag filters, with the rest matched by discatch |
| bluesky (planned) | terms matched on the live stream, with AND, OR, and NOT applied by discatch |
| mastodon (planned) | each server searched on its own, hashtags only unless the server allows full-text search |
| youtube (planned) | video search on titles and descriptions, with comments matched by discatch |
What matched
Each result includes matched.terms, the terms that were found, and matched.query, the original search. The prescore uses these.
Prescore
A rough relevance score from 0 to 1 that comes free with every result, worked out without an AI model. It ranks and filters. It does not decide what is relevant. That is up to you, your assistant, or the classify option if you turn it on.
| Signal | Weight | Note |
|---|---|---|
| exact phrase hit | 0.35 | any quoted phrase found word for word |
| term coverage | 0.25 | the share of required terms present |
| title hit | 0.15 | a term in the title, not only the body |
| recency | 0.10 | fades over 30 days |
| engagement | 0.10 | replies plus score, scaled per source |
| source weight | 0.05 | per account, may learn from you over time |
Last reviewed by Parsa Khazaeepoul, founder, dcouple. Copy from docs/onboarding.md, docs/query-language.md, docs/events.md, docs/api.md.