# Embeddings index, what is it exactly?

**URL:** <https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971>\
**Category:** Support\
**Created:** [16 September 2026 06:26 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971 "2026-09-16T06:26:57Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![fredv](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@fredv](https://discourse.joplinapp.org/u/fredv)\
**Post date:** [16 September 2026 06:26 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/1 "2026-09-16T06:26:57Z")

</div>

### Operating system

macOS

### Joplin version

3.7.18

### What issue do you have?

Hello,  
Discussions about AI are important and I believe it's a good thing to have such features in Joplin, disabled by default, with good privacy and security.

I just wanted to clarify what are exactly embeddings and index of embeddings in the bottom of the AI settings. I have seen it's disabled by default and i didn't enable it even if i already use the AI feature. I think it would be nice to explain what it does exactly when enabled.

I imagine it creates an index of embeddings of all our notes but is it sent to cloud providers when enabled ? only the current note ? all the notes ? is it used only to help local search ? what are embeddings exactly ? is it safe to send embeddings of our note to cloud providers ?

Can someone please explain exactly the usage of this feature ?  
Thanks

---

<div class="post-metadata">

**Author:** ![uth6287b4](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@uth6287b4](https://discourse.joplinapp.org/u/uth6287b4)\
**Post date:** [16 September 2026 08:29 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/2 "2026-09-16T08:29:56Z")

</div>

I have found that it's actually explained pretty well in the docs, albeit under the heading of "Semantic Search" (which is what the embeddings let you do)

> **[Semantic search (AI embeddings) | Joplin](https://joplinapp.org/help/apps/ai_semantic_search/)**
>
> Joplin can index your notes so they can be searched by meaning rather than just by exact words. For example, searching for "the note about pet sitters for my dog" can find a note titled "Vet contac...

---

<div class="post-metadata">

**Author:** ![fredv](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@fredv](https://discourse.joplinapp.org/u/fredv)\
**Post date:** [16 September 2026 09:28 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/3 "2026-09-16T09:28:35Z")

</div>

Ok thanks for the link  
And a small question about that, if i use this local embedding index, is the content of this index sent to Cloud AI providers if they are enabled ?

---

<div class="post-metadata">

**Author:** ![uth6287b4](https://avatars.discourse-cdn.com/v4/letter/u/df705f/32.png) [@uth6287b4](https://discourse.joplinapp.org/u/uth6287b4)\
**Post date:** [16 September 2026 10:09 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/4 "2026-09-16T10:09:55Z")

</div>

no, the embedding is all done locally and the resulting index is stored locally (it doesn't even sync - each device builds its own index).

> All of this runs **entirely on your device**. The model is local; no note content is sent to a cloud service. The index is also local — it is not synced — so each device builds its own.

---

<div class="post-metadata">

**Author:** ![james-carroll](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/james-carroll/32/28844_2.png) [@james-carroll](https://discourse.joplinapp.org/u/james-carroll)\
**Post date:** [16 September 2026 11:18 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/5 "2026-09-16T11:18:07Z")

</div>

Just to expand upon "What are embedding exactly" since the rest seems pretty well answered.

If I mention the word `orange` out of context, you might associate it with various things. Orange is a colour. Orange is a fruit. Strangely, the fruit also seems to kind of relate to the colour. But also, Orange is a telephone mobile network (or was, anyway).

We could begin to say then, that there's a higher association between the word `orange` being a colour, which might be 95% of how I'd probably use the word orange, maybe 20% of the time I mean the fruits, and maybe 0.001% of the time I mean the mobile network.

So if broadly I ask the computer, "What invoices have I stored recently for my bills", and I have three notes by way of example, one a review about the film A Clockwork Orange, the other a recipe book, and the third a collection of monthly bills, the computer might be able to determine that the Orange network is a telecom bill and present that note, while avoiding bringing up recipes for fruit salads, because the embeddings are what allows for that kind of associativity on a probability level. When it gets more advanced, words can pair up with other words, so the computer might know "Clockwork Orange" refers to a film more than it's likely to refer to a literal orange constructed out of iron and motors, and that context begins to shift probability in more basic ways than me being vague above saying I mean the colour 95% of the time.

By itself the embeddings don't actually do anything and are just an abstract series of numbers that humans wouldn't find very intuitive, but they're what's needed for computers to begin understanding more complex associations in the case above for semantic search (and others) to function efficiently, by precomputing a lot of this association so that it doesn't have to be done over and over for efficiency. The semantic search then can operate on this embeddings index to be speedy, but you could perhaps have other smart stuff go on, like say automatic tagging of related notes by subjects, people in them, & etc.

So in simple terms, an embeddings index is a specific type of database that allows for the computer to understand deeper concepts behind language rather than just raw text; more mathematically, it's a collection of vectors that associates words to other words in super duper high dimensional space.

---

<div class="post-metadata">

**Author:** ![fredv](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@fredv](https://discourse.joplinapp.org/u/fredv)\
**Post date:** [16 September 2026 11:23 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/6 "2026-09-16T11:23:32Z")

</div>

Great explanation, thanks.  
I have also discovered while searching a bit about that that embeddings could be reversed to try to get real text out of them even if they are just vectors. That means that they still are quite precious information and it's a good thing they remain local 🙂

---

<div class="post-metadata">

**Author:** ![james-carroll](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/james-carroll/32/28844_2.png) [@james-carroll](https://discourse.joplinapp.org/u/james-carroll)\
**Post date:** [16 September 2026 11:26 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/7 "2026-09-16T11:26:05Z")

</div>

Yes,

If you put your password into Joplin, and allowed embeddings, then the embedding index itself would potentially store a separate copy of your password and might start making vague associations that you always seem to enter "hunter2" around "Gmail". (Not necessarily as easy as I make it sound).

Course, you shouldn't store passwords in Joplin anyway, but it demonstrates some of the potential concerns. While you can't use the embeddings to return the original notes, it could still potentially leak context about what's actually in them, hence why it doesn't get synced and is local only.

More generally, If I was constantly writing about particular perhaps taboo subjects, like Nintendo emulation, I use Arch btw, and workplace unions, the embeddings technically could suggest that I'm inclined a certain way if someone managed to grab the index, even without having the raw notes. It's super unlikely realistically, and again, the embeddings never leave the device.

---

<div class="post-metadata">

**Author:** ![fredv](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@fredv](https://discourse.joplinapp.org/u/fredv)\
**Post date:** [16 September 2026 11:39 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/8 "2026-09-16T11:39:10Z")

</div>

Thanks again.

Right now my embeddings are created but I can't see if a search result has been made with the current words or with the semantic search. Is there a new to know that ? Semantic search are enabled in my settings but how to be sure which type of search managed to get the results ?

---

<div class="post-metadata">

**Author:** ![james-carroll](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/james-carroll/32/28844_2.png) [@james-carroll](https://discourse.joplinapp.org/u/james-carroll)\
**Post date:** [16 September 2026 17:20 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/9 "2026-09-16T17:20:02Z")

</div>

I think currently results are either basic search or semantic search but not both, per

> [@What's new in Joplin 3.7](https://discourse.joplinapp.org/t/whats-new-in-joplin-3-7/50794/24):
>
> Now I see in the documentation that it's in the regular search bar.It says the results are mixed in with full text search. How can I tell if it's working? I've tried a few searches, and I can't tell if it's returning just full text or semantic search, too. My notes are all indexed.

I'm not sure if the UI might change to make it more clear in the future which was used, or to be able force the semantic search even if regular searching has matches or etc, but it's possible that feature will evolve with feedback as everything else does.

---

<div class="post-metadata">

**Author:** ![personalizedrefriger](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/personalizedrefriger/32/13210_2.png) [@personalizedrefriger](https://discourse.joplinapp.org/u/personalizedrefriger)\
**Post date:** [16 September 2026 18:55 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/10 "2026-09-16T18:55:57Z")

</div>

> I think currently results are either basic search or semantic search but not both, per

Related notes:

- Semantic search results should be mixed with full-text results in the search panel (at least, as of [this pull request](https://github.com/laurent22/joplin/pull/16118)).
- Semantic search results will sometimes (but not always!) highlight larger semantic matches (e.g. "Joplin Server setup!" for a search of "Joplinn Server"):  
 ![screenshot: Searching for Joplinn Server results in a note with "Joplin Server Setup!" highlighted (in addition to other highlighted terms)](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/3X/1/1/11b4776c65071f5a3cd28e29bd5aa1c462b2020a.jpeg)  
Notice that "Joplin Server setup!" is highlighted in the above screenshot, even though the search query 1) misspells "Joplin" and 2) does not include the word "setup!".  
Since I have no notes that include the word "Joplinn", Misspelling Joplin as "Joplinn" excludes full-text search matches from the search results.
- Semantic search is responsible for no more than 5 results in the search panel.\[1\]
- Starting a search query with a `/` (e.g. `/search`) uses [basic search](https://joplinapp.org/help/apps/search/#supported-queries:~:text=Switch%20to%20basic%20search), which disables semantic search for that query.\[2\]
- Including filters in the search also disables semantic search. For example, searching for `body:"Joplin Server"` searches for notes including "Joplin" and "Server" in the note body, but does not use semantic search.\[3\]  
 ![screenshot:A search for body:"Joplin Server" returns a note containing "Joplin and Server"](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/3X/d/5/d505eb617d8df924f9aac8c7b435b0ca93aaa3b8.png)

* * *

1. This might change in the future. See the [related configuration](https://github.com/laurent22/joplin/blob/4f4494fe1bc6e76e139e523c2dac8771593e31ff/packages/lib/services/ai/SearchService.ts#L26), where the [k is the maximum number of results](https://github.com/laurent22/joplin/blob/4f4494fe1bc6e76e139e523c2dac8771593e31ff/packages/lib/models/NoteEmbedding.ts#L219)). 

2. Related code: [SearchEngine.ts](https://github.com/laurent22/joplin/blob/4f4494fe1bc6e76e139e523c2dac8771593e31ff/packages/lib/services/search/SearchEngine.ts#L931) and [SearchEngineUtils.ts](https://github.com/laurent22/joplin/blob/4f4494fe1bc6e76e139e523c2dac8771593e31ff/packages/lib/services/search/SearchEngineUtils.ts#L23) 

3. Related code: [canSemanticSearch\_ in SearchEngine.ts](https://github.com/laurent22/joplin/blob/4f4494fe1bc6e76e139e523c2dac8771593e31ff/packages/lib/services/search/SearchEngine.ts#L762)

---

<div class="post-metadata">

**Author:** ![fredv](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@fredv](https://discourse.joplinapp.org/u/fredv)\
**Post date:** [18 September 2026 07:52 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/11 "2026-09-18T07:52:44Z")

</div>

Thanks for these details.  
Is there a way to know whether semantic search is enabled or not ?

I have enabled it and here is what i see in the settings :

 ![Screenshot_2026-09-18 09.49.21_C8Qt3i](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/3X/a/e/ae61f9abb5046ef17ef8e6aadd41d9f743b4d678.png)

It says Indexing is waiting and the number of notes is larger than the total of notes, is there an issue ? does the semantic search work when the indexer is in this status ?

Thanks

---

<div class="post-metadata">

**Author:** ![laurent](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@laurent](https://discourse.joplinapp.org/u/laurent)\
**Post date:** [18 September 2026 15:00 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/12 "2026-09-18T15:00:34Z")

</div>

It should work. To test I suggest making a search with keywords that you know are not present in your note collection - it should normally return 0 result, but with semantic search it might return some.

Another good test is to make a search in English for notes that you know are in French, and it should return those French notes (which is a good indication that it search by meaning rather than by exact keywords)

---

<div class="post-metadata">

**Author:** ![fredv](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@fredv](https://discourse.joplinapp.org/u/fredv)\
**Post date:** [18 September 2026 15:51 UTC](https://discourse.joplinapp.org/t/embeddings-index-what-is-it-exactly/50971/13 "2026-09-18T15:51:25Z")

</div>

Thanks for your answer.

About the indexing, I have seen that "En attente" in french is "Idle" in english which means it should be available. Only small issue about the number of notes indexed which is greater than total number, that's strange. Maybe because I have deleted some notes ?

 ![Screenshot_2026-09-18 17.50.17_n6FH5Z](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/3X/c/1/c1d16b17f5f46a9ab99c1aea5b88732d3ea0056d.png)

An maybe it would be interesting to have a way to delete the index in the AI settings to be able to delete and stop using it, or delete to make Joplin recalculate it.

I have tried to look at english words when i have french notes and it doesn't seem to work. I have no example where it works.

Only example I managed to make work with semantic (i believe) is with Joplinn on a very small note

 ![Screenshot_2026-09-18 17.48.21_UFsyXI](https://canada1.discourse-cdn.com/flex028/uploads/cozic/original/3X/5/2/52830f4995ed4f899838282d9e94df910a4550cb.png)

Maybe my notes have too much text to work correctly .. do you have an easy test i could do ?  
I will create small notes with only some sentences to see if it may work with them.
