Update README.md
This commit is contained in:
123
README.md
123
README.md
@@ -45,128 +45,9 @@ information.
|
|||||||
|
|
||||||
You can check the [CHANGELOG](./CHANGELOG.md) for more information on the different versions.
|
You can check the [CHANGELOG](./CHANGELOG.md) for more information on the different versions.
|
||||||
|
|
||||||
## Usage
|
## Documentation
|
||||||
|
|
||||||
Omnisearch can be used within 2 different contexts:
|
https://publish.obsidian.md/omnisearch/Index
|
||||||
|
|
||||||
### 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<ResultNoteApi[]>,
|
|
||||||
// Refreshes the index
|
|
||||||
refreshIndex: () => Promise<void>
|
|
||||||
// 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.
|
|
||||||
|
|
||||||
## LICENSE
|
## LICENSE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user