返回资讯中心
外部精选
软件工程
#开发者实时流

New Obsidian Search Plugin: Combines Fzf, Telescope, OmniSearch and Embeddings

by Simon Späti · CreatedCreated: Oct 26, 2026 · 13 min read

Hacker News 最新zazuke2026/10/29 · 今天26 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

Last updatedUpdated: Oct 29, 2026

by Simon Späti · CreatedCreated: Oct 26, 2026 · 13 min read

·

growing

Note status Growing. Worked on quite a bit, still rough. Expect bullets, gaps and views that update. Estimated from edit history · 2 sessions over 1 day · 2,845 words · How my notes grow

Recent changes

Oct 29today

+46 / −231 words

Oct 29today

published · 3030 words

Fast Find 10k is a new Obsidian plugin I’ve built for my dream search based on fzf and

Telescope form Neovim for preview style and fuzzy search, Omnisearch for smarter search, and Smart Connections for similar notes, all based on Rust WASM to be super fast.

Shows FF10K searchh with results in: direct title match, match in header h3, match in content, bottom left semantic simlar notes and bottom right with smilar notes based on Smart Connections. Install at:

Fast Find 10K - Obsidian Plugin.

This plugin was created out of my own need for a growing vault beyond 10k Markdown notes. OmniSearch, which I used for years, couldn’t manage to bring me the notes I wanted on the first try, so I had to use Quick Switcher and search by file name only. Sometimes I searched the keywords in the wrong order, or it just couldn’t manage to find them with the long notes, as the idea was buried inside the body somewhere or in the headers.

That’s why I tried to build my dream search, which looks like

Telescope.nvim, which I use for Neovim, with a pretty preview for images and notes before I open the actual note.

Then the search has different levels of search: Title/file name, H1-Hx, and then body. But I also integrated it with embeddings from Smart Connection plugin, meaning it shows similar notes directly inline to each note, so I don’t start creating a similar note, or I see similar notes appear which helps me to not duplicate notes.

It’s built with Rust-WASM, so it’s meant for speed, each key press sets off a search and it has some cool features that you can map e.g. oss: open-source, open-source software or k8s: kubernetes or I also integrated a simple language features as my most notes are in English, but some in German, so if I search for house and I enable language feature ctrl+l, it will also find haus notes which is the German word for it.

It has a good fuzzy search, it tolerates typos and still tries to put the most matching word at the top, even though there might be a typo. You can find more details in

how ranking works with a few examples and also a comparison to OmniSearch.

This plugin is very early, but I’d like to share it if anybody has a large vault (10k+ notes, hence the name) and would like a new way to find notes.

If you use it and see some improvements possible, or things don’t work, I’m very happy to integrate some of them. I am using it daily, and will improve as I go, but it’s very usable already, IMO (I’m biased obviously 🙂 ).

Credits: Some ideas and behavior borrowed from other great plugins: fff, fzf, Telescope, Omnisearch and Smart Connections. Fuzzy matching by neo_frizbee.

I used Omnisearch for 5+ years, and I ran into the 10k limitation of Obsidian. Luckily, Kepano, the CEO of Obsidian,

quickly solved (Original

limit). The problem was that wikilinks starting with [[ didn’t show notes that existed in the vault. I knew it, sometimes they showed, sometimes they didn’t. In this new plugin I created with Claude Code, I integrated Quick Search, Omnisearch, and Smart Connections into one plugin. And in the bottom right, there are similar notes to show and avoid creating an existing note twice, which is most important to

my Obsidian workflow, as I don’t rely on folders, but on search.

Short Video Showcase:

Your browser does not support the video tag.

Also see longer Form YouTube Video (13 min):

File only results toggled with ctrl+f including image preview:

Show why a note ranks toggled with ctrl+r:

Show note with preview - one click for preview, two for open - toggle preview by clicking on preview pill, or set in settings if you want them on or off by default:

Check more use-cases - here with the language feature House also find the German words Haus with +language enabled: img_Obsidian Fast Find 10K Plugin_1793113567241.webp

A trick I use: maybe I will add it as a default, use the shortcut resume last as a hotkey, this way, it opens the last search, and you can open the other note if you opened the wrong one, and when you type, it will immediately replace the previous text. Not sure if people like that workflow as the default, but it definitely works well for me.

For easy access and search, use as swipe down on mobile:

First, open Settings and go to Interface:

And then choose Fast Find 10K (I’d recommend resume last):

After that, swiping down will bring up search anywere 😊.

Each query word (and each quoted phrase) must match, except optional words (a an the of to in on i by default), which only add to the score. A note’s tier comes from the weakest field its words matched, and a lower tier never ranks above a higher one:

Within a tier the score adds the field weights × match quality (exact 1.0, prefix by length ratio, fuzzy below that), shrinks it for title words the query left unmatched, and adds proximity (words close together or in one section), backlinks, a bonus when the title is exactly the query’s words, frecency (opens over the last 30 days, decaying) and a sticky bonus for a note opened three times from the same query. Downranked folders and very short notes are multiplied down. Ctrl+R shows every part for each row.

Find more details to performance and details how the serach is implemented in

README.md.

All results below come from the CLI on the 9,385-note test vault (ff10k query <vault> "<q>"), which is a copy of my own vault; Obsidian shows the same list.

Word order does not matter. ai writing and writing ai give the same list:

1 2 3 4

1 AI Writing 1 How to detect AI Writing 1 Use Cases of AI Writing (ChatGPT, Lex, etc.) 1 Writing with AI- SSP Data

Typos. obsidian troubelshoot (letters swapped) still puts “Obsidian Troubleshoot” first; the rest are notes with a troubleshooting heading:

1 2 3 4

1 Obsidian Troubleshoot 2 Obsidian ### Troubleshooting 2 Vimrc for Obsidian ## Troubleshoot 2 Obsidian Lag ## Debug / Troubleshoot

Fully covered titles win. obsidian trouble ranks “Obsidian Troubleshoot” above “Obsidian Trouble Tags Plugin”, because the second title has two words the query did not mention. Ctrl+R shows it: trouble→title prefix 0.58 · titleFactor ×1.00 versus trouble→title exact 1.00 · titleFactor ×0.70. Type trouble tags and the plugin note comes first.

Phrase, tag, path and exclude. "data engineering" duckdb needs the two words next to each other and duckdb anywhere:

1 2 3

1 Reducing complex Data Engineering Architecture with SQLite and DuckDB 1 What has WebAssembly (WASM) to do with DuckDB and data engineering [ghost x1] 2 Data Engineering Whitepapers ## DuckDB

Comparisons to other Searches

Comparing to OmniSearch and QMD, a CLI outside of Obsidian.

Same vault, same queries, Omnisearch 1.31.0 with its default fuzziness. First three results each:

Recall over the vault’s own titles (every note queried by its full title, its first two words, and its title with one letter deleted; the note must be the first hit), a 939-note sample (every 10th note) for both tools. No language expansion or abbreviations were active in any run:

The “first two words” row is expected, not a gap: a query such as RW Data matches about a hundred notes titled “RW Data …” equally (every word matched, same number of unmatched title words), so which equal note comes first is a tie-break. Fast Find 10K breaks ties by backlinks, then by modification date; Omnisearch’s BM25 prefers the shorter document, which happens to agree with the test more often. The note you want is in the top 10 in 88 % of these ambiguous queries, and typing one more word resolves it.

QMD by Tobi Lütke is a great command-line search that does “semantic search for your vault”, and

this article compares it against OmniSearch. QMD is a CLI, not an Obsidian plugin, and it’s built for a different question: “what do I know about motivation decay?” rather than “where is that note about troubleshooting?”.

For every query it runs a small local LLM to generate two alternative phrasings, searches BM25 and embeddings for all three, merges the six result lists with reciprocal rank fusion, and finally hands the top 30 to a reranker model that reads each note and judges relevance. That’s why it finds notes that share no words with your query, and also why a cold query takes around 20 seconds and a warm one a couple of seconds, which is fine for an AI agent but not for typing in a search box.

Fast Find 10K is the other end of that trade-off: no model in the loop, so it answers on every keystroke in milliseconds, with an inverted index per field (title, aliases, h1-h3, tags, links, path, body), fuzzy matching with typo tolerance, hard tiers so a title hit always beats a body hit, and frecency so the notes I open often float up. The one place we overlap is embeddings: if Smart Connections is installed, FF10K uses its local vectors for the similar-notes panel and, when the lexical search comes up nearly empty, as a semantic fallback tier, roughly QMD’s vector-only mode on whole notes without the expansion, fusion, or reranking.

Again, this is optimized for large vaults, 10k+ notes (not images). It excludes all images or PDFs, and focuses on markdown notes so they don infer speed

The name comes from finding fast notes, which is the key of this plugin and the 10k is a hint to my personal limitation I got from 10k above. It’s not meant to stay like this, or not usable below 10k, it will work peferctly fine too for low files, but that’s the reason why I created it, and hence the name.

Also, everything deliberately does not use AI/LLMs, only embeddings through Smart Connections that are created locally.

Smart Connection creates local embeddings in .smart-env (a small local embedding model), and we use these to show similar notes. Everything else is just a local index based on your notes.

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →