aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohamed Bassem (aider) <me@mbassem.com>2025-01-01 14:55:54 +0000
committerMohamed Bassem <me@mbassem.com>2025-01-01 20:55:50 +0000
commitb09c5f266df494cca64996d317568122d37dcdb0 (patch)
tree34293d48e228acacc027398497148c886eee1e8c
parentc31b7c6437874b26a45be73da9d5214ce6130d20 (diff)
downloadkarakeep-b09c5f266df494cca64996d317568122d37dcdb0.tar.zst
docs: Add search query language documentation
-rw-r--r--docs/docs/14-Guides/02-search-query-language.md68
1 files changed, 68 insertions, 0 deletions
diff --git a/docs/docs/14-Guides/02-search-query-language.md b/docs/docs/14-Guides/02-search-query-language.md
new file mode 100644
index 00000000..fddd896c
--- /dev/null
+++ b/docs/docs/14-Guides/02-search-query-language.md
@@ -0,0 +1,68 @@
+# Search Query Language
+
+Hoarder provides a search query language to filter and find bookmarks. Here are all the supported qualifiers and how to use them:
+
+## Basic Syntax
+
+- Use spaces to separate multiple conditions (implicit AND)
+- Use `and`/`or` keywords for explicit boolean logic
+- Use parentheses `()` for grouping conditions
+- Prefix qualifiers with `-` to negate them
+
+## Qualifiers
+
+Here's a comprehensive table of all supported qualifiers:
+
+| Qualifier | Description | Example Usage |
+| --------------- | -------------------------------------------------- | --------------------- |
+| `is:fav` | Favorited bookmarks | `is:fav` |
+| `is:archived` | Archived bookmarks | `-is:archived` |
+| `is:tagged` | Bookmarks that has one or more tags | `is:tagged` |
+| `is:inlist` | Bookmarks that are in one or more lists | `is:inlist` |
+| `url:<value>` | Match bookmarks with URL substring | `url:example.com` |
+| `#<tag>` | Match bookmarks with specific tag | `#important` |
+| | Supports quoted strings for tags with spaces | `#"work in progress"` |
+| `list:<name>` | Match bookmarks in specific list | `list:reading` |
+| | Supports quoted strings for list names with spaces | `list:"to review"` |
+| `after:<date>` | Bookmarks created on or after date (YYYY-MM-DD) | `after:2023-01-01` |
+| `before:<date>` | Bookmarks created on orbefore date (YYYY-MM-DD) | `before:2023-12-31` |
+
+### Examples
+
+```plaintext
+# Find favorited bookmarks from 2023 that are tagged "important"
+is:fav after:2023-01-01 before:2023-12-31 #important
+
+# Find archived bookmarks that are either in "reading" list or tagged "work"
+is:archived and (list:reading or #work)
+
+# Find bookmarks that are not tagged or not in any list
+-is:tagged or -is:inlist
+```
+
+## Combining Conditions
+
+You can combine multiple conditions using boolean logic:
+
+```plaintext
+# Find favorited bookmarks from 2023 that are tagged "important"
+is:fav after:2023-01-01 before:2023-12-31 #important
+
+# Find archived bookmarks that are either in "reading" list or tagged "work"
+is:archived and (list:reading or #work)
+
+# Find bookmarks that are not favorited and not archived
+-is:fav -is:archived
+```
+
+## Text Search
+
+Any text not part of a qualifier will be treated as a full-text search:
+
+```plaintext
+# Search for "machine learning" in bookmark content
+machine learning
+
+# Combine text search with qualifiers
+machine learning is:fav
+```