Semantic Search plugin

Hello!

I made a plugin to search for blocks with similar meaning to the search query. Although the Logseq DB version has something like this, I wanted to use it in my Markdown-based daily workflow on a rock solid version.

It doesn’t need a GPU, although for large graphs you’ll find it speeds up the initial indexing process. For searching, though, and catch-up indexing as you make edits, CPU is definitely fast enough. This demo is CPU only:

demo

It’s not using a full LLM, just a text embedding model. It runs locally, using ollama.

I’ve been finding it incredibly useful, since my graph is over a year old and full of things I’ve already forgotten.

Would love feedback!

Thank you for your efforts. It’s very helpful

Exciting. Thanks. I’ll take it for a spin soon. I’m working on a plugin/ollama stack too. I’m assuming your plugin calls out.

I tried. The server is up and running, but logseq can’t connect to it. I think it is a matter of permission. How did you organize your permissions?

I didn’t need to do anything with permissions except expose the port from the container I was running ollama in. I described it here but it’s basically:

podman run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama docker.io/ollama/ollama

The -p option is what does it. (If you want to let the container use a local GPU you need to pass some additional options, depending on your OS, GPU and container runtime.)

I did that and I can access the server with CURL. But if I start the plugin, I get “Cannot reach embedding server. Is Ollama running?” and the log says:

[GIN] 2026/03/14 - 11:03:52 | 403 | 18.575µs | 2a01:cb11:9d3:4e00:a50c:d159:2d11:ea87 | OPTIONS “/api/embed”
[GIN] 2026/03/14 - 11:10:56 | 403 | 15.542µs | 2a01:cb11:9d3:4e00:a50c:d159:2d11:ea87 | OPTIONS “/api/embed”

Ok, so if you don’t know, your fedora is probably not as hardened as my opensuse. I will look at firewall and things.

Aha. Maybe try setting OLLAMA_ORIGINS to “*” on the server then? Sounds like a cross-origin issue if the server is refusing it.

EDITED: Now that I look more closely, that’s the setting I have. Let me update that blog post.