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   grouping

How 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.

SourceHow discatch searches it
web, newsbuilt-in operators pass through, and site: and quotes map directly
hackernewsyour terms plus tags and number filters for the time range
discourseeach forum searched on its own, with after: and category: filters
githubGitHub search filters such as in:title,body, repo:, and is:issue
stackexchangesite 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.

SignalWeightNote
exact phrase hit0.35any quoted phrase found word for word
term coverage0.25the share of required terms present
title hit0.15a term in the title, not only the body
recency0.10fades over 30 days
engagement0.10replies plus score, scaled per source
source weight0.05per account, may learn from you over time

Last reviewed by , founder, dcouple. Copy from docs/onboarding.md, docs/query-language.md, docs/events.md, docs/api.md.