Compare¶
← README · Configure · Architecture · Roadmap
Paperless-ngx recognizes the text of every document and keeps an index of its words. Two ways bring that into Nextcloud's search: ask the index of Paperless, as Paperless Unified Search does, or let Nextcloud build a second index of the synchronized files. This page compares the two, and every app that does one of them, as of October 2026, after the descriptions of the apps in the Nextcloud App Store and their documentation. A correction is welcome as an issue.
One index or two¶
---
config:
flowchart:
wrappingWidth: 400
nodeSpacing: 30
---
flowchart TB
accTitle: One index or two
accDescr: With Paperless Unified Search there is one index. Nextcloud's search asks Paperless-ngx, whose OCR and full-text index already holds the words of every document, and each document that matches opens its synchronized file in Nextcloud. With a search of its own in Nextcloud, such as Full text search with Elasticsearch, Context Chat or Findling, there are two. The synchronized files are read again, scans are recognized again, and their words are stored a second time, in an index with a server or a container of its own, which Nextcloud's search asks instead.
subgraph one ["Paperless Unified Search: one index"]
direction TB
search1(["Nextcloud's search"])
paperless1[("Paperless-ngx<br>OCR and full-text index")]
files1["The synchronized files,<br>opened in Nextcloud"]
search1 -- "asks" --> paperless1
paperless1 -- "the documents<br>that match" --> files1
end
subgraph two ["A search of its own: two indexes"]
direction TB
paperless2[("Paperless-ngx<br>OCR and full-text index")]
files2["The synchronized files"]
index2[("A second index,<br>in a server or a container<br>of its own")]
search2(["Nextcloud's search"])
paperless2 -- "synchronized" --> files2
files2 -- "read again,<br>scans recognized again" --> index2
search2 -- "asks" --> index2
end
one ~~~ two
classDef app fill:#526cfe2e,stroke:#526cfe,stroke-width:2px
classDef yes fill:#16a34a2e,stroke:#16a34a,stroke-width:2px
classDef no fill:#dc26262e,stroke:#dc2626,stroke-width:2px
class search1,search2 app
class one yes
class index2 no
One index means nothing more to run, back up or keep current, no second copy of the text of the documents, and no delay: a document is found in Nextcloud as soon as Paperless has it and its file has arrived. It also means the search of Paperless itself, with its ranking, its highlights and its syntax, which knows the correspondent, the type, the tags and the dates of a document, not only its words.
At a glance¶
The table sets it beside the other ways to find Paperless documents from Nextcloud, as of October 2026. Every way but the web UI of Paperless needs the documents as files in Nextcloud, such as those of Paperless Sync.
| Searches the OCR text | Nextcloud's shares decide who sees a result | Opens in Nextcloud's viewer and mobile apps | Extra infrastructure | Keeps a second index | |
|---|---|---|---|---|---|
| Paperless Unified Search | Yes, in the index of Paperless | Yes | Yes | None | No |
| Full text search with Elasticsearch | Only in files with a text layer | Yes | Yes | An Elasticsearch server | Yes |
| Workflow OCR | No search of its own: it adds a text layer for another search | — | — | OCRmyPDF, or its backend container | No, but the search it feeds does |
| Paperless integration | No search: it sends files to Paperless | — | — | None | No |
| Context Chat | Only in files with a text layer, as answers to questions | Yes | Its answers link to the files | AppAPI, its backend container and a language model | Yes, of vectors |
| Findling | Yes, with an OCR of its own | Yes | Yes | AppAPI and its backend container | Yes, of words and of vectors |
| The web UI of Paperless-ngx | Yes | No: accounts and permissions of Paperless | No: documents open in Paperless | None | No |
The alternatives one by one¶
Full text search with Elasticsearch¶
Nextcloud's apps Full text search, Full text search - Files and Full text search - Elasticsearch Platform index the content of every file in an Elasticsearch server and add it to Nextcloud's search. They find words in all files of Nextcloud, not only in the documents of Paperless, and respect the shares of the files.
They need an Elasticsearch server, with its own memory, updates and backups, and its index keeps a second copy of the text of every document. A scan is found only by its text layer: the archive PDFs of Paperless have one, an original scan has none, and the Tesseract app, which recognizes such text for the index, supports Nextcloud 32 at most. What Paperless knows beyond the text, such as the correspondent, the type and the tags, isn't in that index.
Workflow OCR¶
Workflow OCR recognizes the text of PDFs and images in Nextcloud with OCRmyPDF, installed on the server or as its backend container, by a rule of Nextcloud's flows, and saves it in the file as a text layer. It has no search of its own: another one, such as Full text search, finds that text. For the documents of Paperless, it repeats the recognition that Paperless has already done.
The Paperless integration¶
The app Paperless of Nextcloud adds an action to Files that uploads a file to Paperless. It has no search: its issue #10 asks for exactly what Paperless Unified Search does. Its latest release supports Nextcloud 28 to 32. Paperless Sync also uploads files to Paperless, from an inbox folder in Nextcloud.
Context Chat¶
Context Chat lets Nextcloud's Assistant answer questions about the documents of a user with a language model, from a vector index of their text. It answers questions rather than listing documents, and understands paraphrases. It needs AppAPI with a deploy daemon, the Context Chat Backend container, the Assistant and a provider of a language model, on the server or a remote service. It reads the text layer of a PDF and recognizes no scans.
Findling¶
Findling adds a full-text and a semantic search of all files to Nextcloud's search, with an OCR of its own for scans and images, and checks the permissions of every result. It needs AppAPI and its backend container, whose index keeps the text of every file. The documents of Paperless are recognized and indexed a second time there.
The web UI of Paperless-ngx¶
The web UI of Paperless has the same search and much more: tags, notes, workflows and editing. Who sees a document there is decided by the accounts and permissions of Paperless, not by the shares of Nextcloud, so every reader needs an account in Paperless, and a document opens in Paperless, not in Nextcloud or its mobile apps.
When to choose which¶
- Paperless Unified Search, when Paperless holds the documents and people should find them where they already work, in Nextcloud, with the shares of Nextcloud deciding who sees what and nothing more to run.
- Findling or Context Chat, for a semantic search that finds paraphrases, or for files that never pass through Paperless, where AppAPI and a backend container are welcome.
- Full text search with Elasticsearch, to search the content of every file of Nextcloud, where an Elasticsearch server runs anyway.
- Workflow OCR, together with a search for their text, to make scans searchable that land in Nextcloud and never reach Paperless.
- The Paperless integration or Paperless Sync, to send files from Nextcloud to Paperless.
- The web UI of Paperless, to work with the documents: to tag, edit, annotate and automate them. Paperless Unified Search finds them; Paperless manages them.
Use them together¶
Paperless Unified Search adds one more provider to Nextcloud's search, Paperless documents, and gets along with the others: with Findling or Full text search for the files that aren't in Paperless, and with the web UI of Paperless for its administration. Configure shows how any synchronization brings the files of Paperless into Nextcloud.