Full-Text Search (FTS)
When you use any of the text search boxes on this site, a full-text search (FTS) is conducted to find the best result. FTS gives you extra control over your search via a few special keywords and syntax. They are explained in detail below, from the most common and useful to the less used.
*We use SQLite FTS5 underneath the hood. FTS5 Full-text Query Syntax has the nerdy details.
Stemming Tokenizer 🙂🙂
This means FTS automatically matches different forms of the same base word.
- Search: write
- Match: Write. Keep writing. Become a prolific writer!
Phases 🙂🙂
In most cases, you can think of phrases as words separated by spaces. For example, tab management contains two phrases. FTS searches for each phrase separately.
- Search: tab management
- Match: Manage your browser tabs easily
Concatenating Phrases 🙂🙂
To concatenate multiple phrases into one, you can use double quotes (") or +. For example, "tab management" and tab+management are equivalent.
- Search: tab+management
- Match: The best tab manager!
- No Match: Manage tabs easily
NEAR query 🙂
To find phrases that are close to each other, you can use the keyword NEAR (case sensitive). It allows you to specify the maximum distance (i.e. number of tokens) allowed between them. Phrases too far apart will not match even if individual phrases do.
- Search: NEAR(tab management, 2)
- Match: Manage your browser tabs easily
- No Match: Manage all your browser tabs easily
*Default distance is 10 if not specified.
Boolean Operators 🙂
You can use boolean operators (case sensitive) to join phrases and NEAR queries to further control the matching logic. In order of precedence, from highest (tightest grouping) to lowest (loosest grouping), the operators are:
- a NOT b - matches if a matches but b does not
- a AND b - matches if a matches and b matches
- a OR b - matches if a matches or b matches
Use parenthesis to define precedence explicitly: a AND (b OR c)
*Phrases separated by spaces imply AND.
Column Filters
FTS is performed across three text columns in the database:
- name - the extension name
- description - the short description
- overview - the full description
By default, all three columns are searched. If any column contains a match, the record is returned as a match. You can use column filters to specify which column(s) should be searched and the rest are ignored.
- name:tab+manager - search in name only
- {description overview}:Near(tab manager, 2) - search in description and overview (in curly brackets)
Initial Token Query
If ^ precedes a phrase, only the first token in a column is searched for a match.
- ^tab+manager - matches if a column starts with a match
- name:^tab+manager - matches if the name column starts with a match
Predix Query
If a string is followed by an asterisk (*), a token that starts with the string (i.e. prefix) is a match.
- Search: tab+man*
- Match: The best tab manager!
- Match: Tab manipulation is easy