From a01a0996a07fdd52fc597e4f975202e0bff7968b Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Sun, 5 Mar 2023 19:35:20 +0100 Subject: [PATCH] Update README.md --- README.md | 123 +----------------------------------------------------- 1 file changed, 2 insertions(+), 121 deletions(-) diff --git a/README.md b/README.md index 50d88a5..45dcbf5 100644 --- a/README.md +++ b/README.md @@ -45,128 +45,9 @@ information. You can check the [CHANGELOG](./CHANGELOG.md) for more information on the different versions. -## Usage +## Documentation -Omnisearch can be used within 2 different contexts: - -### Vault Search - -Omnisearch's core feature, accessible with the Command Palette "**_Omnisearch: Vault search_**". This modal searches -through your vault and returns the most relevant notes. That's all you need to _find_ a note. - -If you want to list all the search matches of a single note, you can do so by using `tab` to open the In-File Search. - -### In-File Search - -Also accessible through the Command Palette "**_Omnisearch: In-file search_**". This modal searches through the active -note's content and lists the matching results. Just press enter to automatically scroll to the right place. - -## URL Scheme & Public API - -You can open Omnisearch with the following scheme: `obsidian://omnisearch?query=foo bar` - ----- - -For plugin developers and Dataview users, Omnisearch is also accessible through the global -object `omnisearch` (`window.omnisearch`) - -> This API is an experimental feature, the `ResultNote` interface may change in the future. The `search()` function -> returns at most 50 results. - -```ts -// API: -type OmnisearchApi = { - // Returns a promise that will contain the same results as the Vault modal - search: (query: string) => Promise, - // Refreshes the index - refreshIndex: () => Promise - // Register a callback that will be called when the indexing is done - registerOnIndexed: (callback: () => void) => void, - // Unregister a callback that was previously registered - unregisterOnIndexed: (callback: () => void) => void, -} - -type ResultNoteApi = { - score: number - path: string - basename: string - foundWords: string[] - matches: SearchMatchApi[] - excerpt: string -} - -type SearchMatchApi = { - match: string - offset: number -} -``` - -### Dataview Integration - -You can use the Omnisearch API directly within the [Dataview](https://blacksmithgu.github.io/obsidian-dataview/) plugin. - -~~~js -```dataviewjs -const results = await omnisearch.search('your query') -const arr = dv.array(results).sort(r => r.score, 'desc') -dv.table(['File', 'Score'], arr.map(o => [dv.fileLink(o.path), Math.round(o.score)])) -``` -~~~ - -## CSS Customization - -There are several CSS classes you can use to customize the appearance of Omnisearch. - -```css -.omnisearch-modal -.omnisearch-result -.omnisearch-result__title -.omnisearch-result__counter -.omnisearch-result__body -.omnisearch-highlight -.omnisearch-input-container -.omnisearch-input-field -``` - -See [styles.css](./assets/styles.css) for more information. - -## Issues & Solutions - -**Omnisearch makes Obsidian sluggish/freeze at startup.** - -- While Omnisearch does its best to work smoothly in the background, bigger vaults and files can make Obsidian stutter - during indexing. -- If you have several thousands of files, Obsidian may freeze a few seconds at startup while the Omnisearch cache is - loaded in memory. - -**Omnisearch seems to make Obsidian slower.** - -- Once Obsidian has indexed your files at startup, it doesn't do anything while its modal is closed. Your changes are - not indexed until you open the modal again. If you experience slowdowns while using Obsidian, it's unlikely that - Omnisearch is responsible. -- However, Text Extractor can make Obsidian slower while indexing PDFs and images for the first time. If you don't need - those features, you can disable them in the plugin settings. - -**Omnisearch is slow to index my PDFs and images** - -- The first time Text Extractor reads those files, it can take a long time to extract their text. The results are then - cached for the text startup. - -**Omnisearch gives inconsistent/invalid results, there are errors in the developer console** - -- Restart Obsidian to force a reindex of Omnisearch. -- The cache could be corrupted; you can clear it at the bottom of the settings page, then restart Obsidian. - -**A query should return a result that does not appear.** - -- If applicable, make sure that "*Ignore diacritics*" is enabled. -- If you have modified them, reset weightings to their original values. -- Rewrite your query and avoid numbers and common words. - -**I'm still having an issue** - -You can write your issue [here](https://github.com/scambier/obsidian-omnisearch/issues) with as much details as -possible. +https://publish.obsidian.md/omnisearch/Index ## LICENSE