Files
khoj/src/interface/obsidian
Debanjum b7fc344be1 Search for Similar Notes from Obsidian Plugin
Enable searching for notes similar to the current note being viewed

## Main Changes
- 39a18e2 Extend search modal to search for similar notes
  - Hide input field on init, Trigger search on opening modal when in similar notes mode
  - Set input to contents of current markdown file and get notes similar to it
  - Re-rank, by default, when searching for similar notes
  - Filter out current note from similar note search results
- 0bed410 Only show `Find Similar Note' command in Editor
2023-01-18 00:10:10 -03:00
..
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00
2023-01-04 18:28:16 -03:00

Khoj Obsidian 🦅

Natural language search for your Obsidian notes using Khoj

Table of Contents

Features

  • Natural: Advanced natural language understanding using Transformer based ML Models
  • Local: Your personal data stays local. All search, indexing is done on your machine*
  • Incremental: Incremental search for a fast, search-as-you-type experience

Demo

https://user-images.githubusercontent.com/6413477/210486007-36ee3407-e6aa-4185-8a26-b0bfc0a4344f.mp4

Description
  1. Install Khoj via pip and start Khoj backend in non-gui mode
  2. Install Khoj plugin via Community Plugins settings pane on Obsidian app
  3. Check the new Khoj plugin settings
  4. Wait for Khoj backend to index markdown files in the current Vault
  5. Open Khoj plugin on Obsidian via Search button on Left Pane
  6. Search "Announce plugin to folks" in the Obsidian Plugin docs
  7. Jump to the search result

Interface

Setup

1. Setup Backend

pip install khoj-assistant && khoj --no-gui

2. Setup Plugin

  1. Open Community plugins tab in Obsidian settings panel
  2. Click Browse and Search for Khoj
  3. Click Install, after that click Enable on the Khoj plugin

See official docs for details

Use

Click the Khoj search icon 🔎 on the Ribbon or run Khoj: Search from the Command Palette

Query Filters

Use structured query syntax to filter the natural language search results

  • Word Filter: Get entries that include/exclude a specified term
    • Entries that contain term_to_include: +"term_to_include"
    • Entries that contain term_to_exclude: -"term_to_exclude"
  • Date Filter: Get entries containing dates in YYYY-MM-DD format from specified date (range)
    • Entries from April 1st 1984: dt:"1984-04-01"
    • Entries after March 31st 1984: dt>="1984-04-01"
    • Entries before April 2nd 1984 : dt<="1984-04-01"
  • File Filter: Get entries from a specified file
    • Entries from incoming.org file: file:"incoming.org"
  • Combined Example
    • what is the meaning of life? file:"1984.org" dt>="1984-01-01" dt<="1985-01-01" -"big" -"brother"
    • Adds all filters to the natural language query. It should return entries
      • from the file 1984.org
      • containing dates from the year 1984
      • excluding words "big" and "brother"
      • that best match the natural language query "what is the meaning of life?"

Find Similar Notes

To see other notes similar to the current one, run Khoj: Find Similar Notes from the Command Palette

Upgrade

1. Upgrade Backend

pip install --upgrade khoj-assistant

2. Upgrade Plugin

  1. Open Community plugins tab in Obsidian settings
  2. Click the Check for updates button
  3. Click the Update button next to Khoj, if available

Troubleshooting

  1. Open the Khoj plugin settings pane, in case you need to configure Khoj
  2. Toggle Enable/Disable Khoj, in case settings changes have not applied
  3. Click Update button to force index to refresh if results are failing or stale

Current Limitations

  • The plugin loads index of only one vault at a time.
    So notes across multiple vaults cannot be search at the same time

Visualize Codebase

Implementation

The plugin implements the following functionality to search your notes with Khoj:

  • Open the Khoj search modal via left ribbon icon or the Khoj: Search command
  • Render results as Markdown preview to improve readability
  • Configure Khoj via the plugin setting tab on the settings page
    • Set Obsidian Vault to Index with Khoj. Defaults to all markdown files in current Vault
    • Set URL of Khoj backend
    • Set Number of Search Results to show in Search Modal
  • Allow user to trigger reranking of result to improve search quality