Fixed bug with diacritcs and quoted searches

Also added more cached data
This commit is contained in:
Simon Cambier
2023-12-17 13:50:07 +01:00
parent faa6966378
commit 703568dab3
3 changed files with 10 additions and 6 deletions

View File

@@ -17,6 +17,8 @@ import {
isFilenameIndexable,
logDebug,
makeMD5,
removeDiacritics,
stripMarkdownCharacters,
} from './tools/utils'
import type { CanvasData } from 'obsidian/canvas'
import type { AsPlainObject } from 'minisearch'
@@ -143,6 +145,8 @@ async function getAndMapIndexedDocument(
return {
basename: file.basename,
content,
/** Content without diacritics and markdown chars */
cleanedContent: stripMarkdownCharacters(removeDiacritics(content)),
path: file.path,
mtime: file.stat.mtime,

View File

@@ -53,6 +53,7 @@ export type IndexedDocument = {
mtime: number
content: string
cleanedContent: string
aliases: string
tags: string[]
unmarkedTags: string[]

View File

@@ -13,7 +13,6 @@ import {
removeDiacritics,
splitCamelCase,
splitHyphens,
stripMarkdownCharacters,
} from '../tools/utils'
import { Notice } from 'obsidian'
import type { Query } from './query'
@@ -321,10 +320,10 @@ export class Omnisearch {
results = results.filter(r => {
const document = documents.find(d => d.path === r.id)
const title = document?.path.toLowerCase() ?? ''
const content = stripMarkdownCharacters(
document?.content ?? ''
).toLowerCase()
return exactTerms.every(q => content.includes(q) || title.includes(q))
const content = (document?.cleanedContent ?? '').toLowerCase()
return exactTerms.every(
q => content.includes(q) || removeDiacritics(title).includes(q)
)
})
}
@@ -333,7 +332,7 @@ export class Omnisearch {
if (exclusions.length) {
logDebug('Filtering with exclusions')
results = results.filter(r => {
const content = stripMarkdownCharacters(
const content = (
documents.find(d => d.path === r.id)?.content ?? ''
).toLowerCase()
return exclusions.every(q => !content.includes(q))