From f4f9b1874b01922efbbc52b1f022db150c592434 Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Fri, 19 Apr 2024 17:51:30 -0700
Subject: [PATCH] Add docs
---
docs/api.md | 35 ++++++++++++++++++++++++++++++++++-
docs/usage.md | 16 ++++++++++++++++
2 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/docs/api.md b/docs/api.md
index 6a275be61..83193f025 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -11,7 +11,7 @@ The API provides the following main endpoints:
- `/api/correspondents/`: Full CRUD support.
- `/api/custom_fields/`: Full CRUD support.
- `/api/documents/`: Full CRUD support, except POSTing new documents.
- See below.
+ See [below](#posting-documents-file-uploads).
- `/api/document_types/`: Full CRUD support.
- `/api/groups/`: Full CRUD support.
- `/api/logs/`: Read-Only.
@@ -24,6 +24,7 @@ The API provides the following main endpoints:
- `/api/tasks/`: Read-only.
- `/api/users/`: Full CRUD support.
- `/api/workflows/`: Full CRUD support.
+- `/api/search/` GET, see [below](#global-search).
All of these endpoints except for the logging endpoint allow you to
fetch (and edit and delete where appropriate) individual objects by
@@ -188,6 +189,38 @@ The REST api provides four different forms of authentication.
[configuration](configuration.md#PAPERLESS_ENABLE_HTTP_REMOTE_USER_API)),
you can authenticate against the API using Remote User auth.
+## Global search
+
+A global search endpoint is available at `/api/search/` and requires a search term
+of > 2 characters e.g. `?query=foo`. This endpoint returns a maximum of 3 results
+across nearly all objects, e.g. documents, tags, saved views, mail rules, etc.
+Results are only included if the requesting user has the appropriate permissions.
+
+Results are returned in the following format:
+
+```json
+{
+ total: number
+ documents: []
+ saved_views: []
+ correspondents: []
+ document_types: []
+ storage_paths: []
+ tags: []
+ users: []
+ groups: []
+ mail_accounts: []
+ mail_rules: []
+ custom_fields: []
+ workflows: []
+}
+```
+
+Global search first searches objects by name (or title for documents) matching the query.
+If the optional `db_only` parameter is set, only document titles will be searched. Otherwise,
+if the amount of documents returned by a simple title string search is < 3, results from the
+search index will also be included.
+
## Searching for documents
Full text searching is available on the `/api/documents/` endpoint. Two
diff --git a/docs/usage.md b/docs/usage.md
index c9003d35d..f11d50a03 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -550,6 +550,16 @@ collection.
## Searching {#basic-usage_searching}
+### Global search
+
+The top search bar in the web UI performs a "global" search of the various
+objects Paperless-ngx uses, including documents, tags, workflows, etc. Only
+objects for which the user has appropriate permissions are returned. For
+documents, if there are < 3 results, "advanced" search results (which use
+the document index) will also be included. This can be disabled under settings.
+
+### Document searches
+
Paperless offers an extensive searching mechanism that is designed to
allow you to quickly find a document you're looking for (for example,
that thing that just broke and you bought a couple months ago, that
@@ -605,6 +615,12 @@ language](https://whoosh.readthedocs.io/en/latest/querylang.html). For
details on what date parsing utilities are available, see [Date
parsing](https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries).
+## Keyboard shortcuts / hotkeys
+
+A list of available hotkeys can be shown on any page using Shift +
+?. The help dialog shows only the keys that are currently available
+based on which area of Paperless-ngx you are using.
+
## The recommended workflow {#usage-recommended-workflow}
Once you have familiarized yourself with paperless and are ready to use