mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	fix fulltext search
This commit is contained in:
		| @@ -52,26 +52,10 @@ async function searchNotes(req) { | ||||
| } | ||||
|  | ||||
| async function getFullTextResults(searchText) { | ||||
|     const tokens = searchText.toLowerCase().split(" "); | ||||
|     const tokenSql = ["1=1"]; | ||||
|     const safeSearchText = utils.sanitizeSql(searchText); | ||||
|  | ||||
|     for (const token of tokens) { | ||||
|         const safeToken = utils.sanitizeSql(token); | ||||
|  | ||||
|         tokenSql.push(`(title LIKE '%${safeToken}%' OR content LIKE '%${safeToken}%')`); | ||||
|     } | ||||
|  | ||||
|     const noteIds = await sql.getColumn(` | ||||
|       SELECT DISTINCT noteId  | ||||
|       FROM  | ||||
|         notes | ||||
|         JOIN note_contents USING(noteId) | ||||
|       WHERE isDeleted = 0  | ||||
|         AND notes.isProtected = 0 | ||||
|         AND type IN ('text', 'code') | ||||
|         AND ${tokenSql.join(' AND ')}`); | ||||
|  | ||||
|     return noteIds; | ||||
|     return await sql.getColumn(`SELECT noteId FROM note_fulltext  | ||||
|                                        WHERE note_fulltext MATCH '${safeSearchText}'`); | ||||
| } | ||||
|  | ||||
| async function saveSearchToNote(req) { | ||||
|   | ||||
| @@ -5,7 +5,7 @@ const html2plaintext = require('html2plaintext'); | ||||
| const noteIdQueue = []; | ||||
|  | ||||
| async function updateNoteFulltext(note) { | ||||
|     if (note.isDeleted || note.isProtected || note.hasLabel('archived')) { | ||||
|     if (note.isDeleted || note.isProtected || await note.hasLabel('archived')) { | ||||
|         await sql.execute(`DELETE | ||||
|                            FROM note_fulltext | ||||
|                            WHERE noteId = ?`, [note.noteId]); | ||||
| @@ -25,7 +25,7 @@ async function updateNoteFulltext(note) { | ||||
|         } | ||||
|  | ||||
|         // optimistically try to update first ... | ||||
|         const res = await sql.execute(`UPDATE note_fulltext title = ?, titleHash = ?, content = ?, contentHash = ? WHERE noteId = ?`, [note.title, note.hash, content, contentHash, note.noteId]); | ||||
|         const res = await sql.execute(`UPDATE note_fulltext SET title = ?, titleHash = ?, content = ?, contentHash = ? WHERE noteId = ?`, [note.title, note.hash, content, contentHash, note.noteId]); | ||||
|  | ||||
|         // ... and insert only when the update did not work | ||||
|         if (res.stmt.changes === 0) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user