You’re looking for “payment deadline” in a contract. Ctrl+F returns nothing, even though a clause states “payment shall be made within 30 days”. The words differ, but the idea is the same. Local semantic PDF search is designed precisely for this kind of matching — without sending the document to a remote service.
Semantic search or Ctrl+F: two different needs
Ctrl+F looks for an exact string of characters. It’s the right choice to find an invoice number, a proper noun, or a phrase whose spelling you know. It’s fast, predictable, and requires no model.
Semantic search instead compares the meaning of your query with the meaning of the document’s passages. It can therefore match “payment deadline” with “payment within 30 days”, or “end of contract” with “termination conditions”. It doesn’t replace exact search: it answers a different need, when you know the topic but not the words the author used.
How embeddings stay local
Document Flare first extracts the text of each page with pdf.js, then splits it into slightly overlapping passages. An embedding is a numerical representation of a text: passages with similar meaning produce close vectors. The query gets a vector too, then the tool ranks passages by cosine similarity.
These computations use Transformers.js and the multilingual model Xenova/paraphrase-multilingual-MiniLM-L12-v2, in its q8-quantized ONNX variant. The model weighs about 115 MiB. It is downloaded from Hugging Face only after your explicit activation, then kept in the browser cache — so it’s downloaded once per browser, not on every use. Inference runs on ONNX Runtime Web: WebGPU is used when available, with a WASM fallback otherwise.
The PDF, its text and your queries stay on the device. The index is held in memory and never persisted. The cost of this privacy is concrete: a large initial download, RAM for the passages and their vectors, then compute time to index the document.
Step by step: search for a concept in your PDF
- Open the Semantic search tool.
- Drop a PDF. A single file is accepted, with a limit of 50 MiB and 1,000 pages.
- Wait for text extraction. If the document is a scan without a sufficient text layer, the panel will suggest going through OCR.
- Click the activation button. The interface announces the ~115 MiB download before starting it and shows its progress.
- Let indexing finish. Every passage of the PDF is turned into an embedding on your device.
- Type an idea rather than a single word. For example: “penalties for late delivery”, “refund procedure” or “provider obligations”.
- Review the ranked passages. Each result shows its page and a proximity score. You can send the found pages to the extraction tool, or export the results to a text file.
For a reference you know exactly, start with Ctrl+F. For a notion phrased in several ways in a long report, run the semantic search.
Concrete use cases
In a contract, you can search for the ideas of termination, renewal or liability without guessing every legal phrasing. In an annual report, a query like “supplier-related risks” can surface passages about dependency or the supply chain. In a thesis, “limitations of the method” can retrieve a discussion about biases or caveats, even without an identical heading.
The ranking remains a reading aid, not proof that every relevant passage was found. To archive only certain pages after checking them, then use Extract PDF pages. For a big-picture view rather than a list of passages, compare with our article on local AI PDF summarization (available in French).
Limits and real cost of the model
First use requires a connection
The ~115 MiB model must be downloaded once. A slow or filtered connection can interrupt this step. The tool works offline only if the model is already in the browser cache. Clearing site data or using another browser profile usually forces a new download.
Large documents consume more RAM
The text is split, vectorized and indexed in memory. The more passages the document contains, the longer indexing takes and the more RAM it uses. The ceilings remain one file, 50 MiB and 1,000 pages, but reaching those limits doesn’t guarantee a smooth experience on a low-end machine.
A scan requires a preliminary step
Without extractable text, no passage can be vectorized. Start by recognizing the text with local OCR. Column order, tables and OCR errors can then affect the relevance of the results.
Multilingual doesn’t mean infallible
The model covers French, English, Arabic and Spanish, among others, but its quality varies with the language, specialized vocabulary and phrasing length. A high score indicates a computed proximity, not a legal or scientific validation. Rephrase the query and always check the passage in its context.
To inspect the network exchanges yourself during the download and then indexing, follow our traffic-verification protocol (article available in French). You’ll be able to tell the one-off model download apart from the local processing of your document.



