Hybrid Search

approved

by flowing-abyss

Fast hybrid search (BM25 + semantic) over your vault via a background CLI. - This plugin has not been manually reviewed by Obsidian staff.

5 stars1,909 downloadsUpdated 20d agoMIT

Hybrid Search

Available in Obsidian Release Downloads

Fast hybrid search for Obsidian — combines BM25 full-text and semantic (vector) search over your vault.

The plugin is a thin UI layer that communicates with the obsidian-hybrid-search CLI, which runs as a background process and handles indexing and search.

Desktop only.

Search modal with results, preview and local graph

Requirements

Install the CLI globally via npm:

npm install -g obsidian-hybrid-search

The CLI must be available in your PATH (or you can set a custom path in plugin settings).

Installation

Via Obsidian Community Plugins

Open the Hybrid Search page and click Add to Obsidian.

Via BRAT

  1. Install the BRAT plugin.
  2. In BRAT settings, click Add Beta Plugin and enter this repository's URL.
    • https://github.com/flowing-abyss/obsidian-hybrid-search-plugin
  3. Enable Hybrid Search in Obsidian's plugin list.

Usage

Open the search modal with:

  • Ribbon icon — click the search icon in the left sidebar.
  • Command palette — run Hybrid search: Open search.

Type to search. Results appear as you type with a relevance score:

📷 Hybrid search results with relevance scores

Hybrid search results with relevance scores

ScoreColorMeaning
>0.8GreenHigh relevance
0.5–0.8OrangeMedium relevance
<0.5GrayLow relevance

Empty query & similar notes

Leave the query empty and the plugin shows contextually relevant results:

  • If a note is open, it surfaces semantically similar notes.
  • If no note is open, it shows recently opened files.
📷 Semantically similar notes

Semantically similar notes

Workbench

The plugin includes a link-discovery workbench that analyzes your vault's knowledge graph to surface the most actionable connections for the current note. It runs several graph algorithms side by side:

  • Best — top candidates ranked by a composite of structural and semantic signals.
  • Missing Links — notes that are strongly related but not yet linked.
  • Bridges — notes that connect otherwise distant parts of your graph.
  • Similar — semantically close notes.
  • Links — existing outgoing and incoming links.
  • Diagnostics — structural insights about the note's position in the graph.

Each candidate exposes interpretable scores — cosine, Adamic-Adar, common neighbors, co-citation count, semantic distance, and more — so you can decide whether a suggested link makes sense. You can add links, inspect backlinks, or compare notes directly from the list, while a live local graph visualizes the neighborhood around the current file.

📷 Link-discovery workbench

Link-discovery workbench with local graph and scored candidates

Query Syntax

These two queries are equivalent:

hybrid: zettelkasten tag:project limit:20 @rerank
zettelkasten #project @limit:20 @rerank @hybrid
InlinePostfixDescription
(plain text)Hybrid search (default)
hybrid:@hybrid / @hybHybrid mode (BM25 + semantic)
semantic: / sem:@semantic / @semSemantic (vector) only
fulltext: / full:@fullFull-text (BM25) only
title:@titleFuzzy title match
tag:#tagFilter by tag (include)
tag:--#tagFilter by tag (exclude)
folder:Limit to a folder
limit:N@limit:N / @lim:NOverride result count
threshold:N@threshold:N / @th:NMinimum score threshold
@rerankRe-rank with cross-encoder
key:valueFilter by frontmatter field

Filters can be combined freely.

Hotkeys

HotkeyAction
Mod+J / Mod+KNext / previous result
Mod+PToggle preview panel
Mod+GToggle local graph panel
Mod+OOpen selected in new tab
Mod+Shift+OOpen all results in new tabs
Alt+EnterInsert wiki link to selected note
Alt+Shift+EnterInsert wiki links to all results

Mod = Ctrl (Windows/Linux) or Cmd (macOS). Alt = Option on macOS.

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.