integrate new search into the main global search

This commit is contained in:
zadam 2020-05-24 09:30:08 +02:00
parent cb4d0624b5
commit b5627b138a
6 changed files with 45 additions and 36 deletions

44
package-lock.json generated
View File

@ -3385,9 +3385,9 @@
}
},
"electron-debug": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.0.1.tgz",
"integrity": "sha512-fo3mtDM4Bxxm3DW1I+XcJKfQlUlns4QGWyWGs8OrXK1bBZ2X9HeqYMntYBx78MYRcGY5S/ualuG4GhCnPlaZEA==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.1.0.tgz",
"integrity": "sha512-SWEqLj4MgfV3tGuO5eBLQ5/Nr6M+KPxsnE0bUJZvQebGJus6RAcdmvd7L+l0Ji31h2mmrN23l2tHFtCa2FvurA==",
"requires": {
"electron-is-dev": "^1.1.0",
"electron-localshortcut": "^3.1.0"
@ -3568,29 +3568,19 @@
"integrity": "sha1-UJ5RDCala1Xhf4Y6SwThEYRqsns="
},
"electron-is-dev": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.1.0.tgz",
"integrity": "sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz",
"integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw=="
},
"electron-localshortcut": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.1.0.tgz",
"integrity": "sha512-MgL/j5jdjW7iA0R6cI7S045B0GlKXWM1FjjujVPjlrmyXRa6yH0bGSaIAfxXAF9tpJm3pLEiQzerYHkRh9JG/A==",
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz",
"integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==",
"requires": {
"debug": "^2.6.8",
"debug": "^4.0.1",
"electron-is-accelerator": "^0.1.0",
"keyboardevent-from-electron-accelerator": "^1.1.0",
"keyboardevent-from-electron-accelerator": "^2.0.0",
"keyboardevents-areequal": "^0.2.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"electron-notarize": {
@ -6507,9 +6497,9 @@
"integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ=="
},
"keyboardevent-from-electron-accelerator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-1.1.0.tgz",
"integrity": "sha512-VDC4vKWGrR3VgIKCE4CsXnvObGgP8C2idnTKEMUkuEuvDGE1GEBX9FtNdJzrD00iQlhI3xFxRaeItsUmlERVng=="
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz",
"integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA=="
},
"keyboardevents-areequal": {
"version": "0.2.2",
@ -10338,9 +10328,9 @@
"dev": true
},
"sqlite": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/sqlite/-/sqlite-4.0.7.tgz",
"integrity": "sha512-1bBO+me3gXRfqwRR3K9aNDoSbTkQ87o6fSjj/BE2gSHHsK3qIDR+LoFZHgZ6kSPdFBoLTsy5/w/+8PBBaK+lvg=="
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/sqlite/-/sqlite-4.0.8.tgz",
"integrity": "sha512-MOy63kITfjJnZimrwgQ50+L83J3IBPjuyTZ98YooAmSXdLtfGHDTMgH5csWturZ/mzm4TafLvtjkIbhmQVNgcw=="
},
"sqlite3": {
"version": "4.1.1",

View File

@ -32,7 +32,7 @@
"dayjs": "1.8.27",
"debug": "4.1.1",
"ejs": "3.1.3",
"electron-debug": "3.0.1",
"electron-debug": "3.1.0",
"electron-dl": "3.0.0",
"electron-find": "1.0.6",
"electron-window-state": "5.0.3",
@ -67,7 +67,7 @@
"serve-favicon": "2.5.0",
"session-file-store": "1.4.0",
"simple-node-logger": "18.12.24",
"sqlite": "4.0.7",
"sqlite": "4.0.8",
"sqlite3": "4.1.1",
"string-similarity": "4.0.1",
"tar-stream": "2.1.2",

View File

@ -48,8 +48,8 @@ export default class SearchResultsWidget extends BasicWidget {
for (const result of results) {
const link = $('<a>', {
href: 'javascript:',
text: result.title
}).attr('data-action', 'note').attr('data-note-path', result.path);
text: result.notePathTitle
}).attr('data-action', 'note').attr('data-note-path', result.notePath);
const $result = $('<li>').append(link);

View File

@ -4,15 +4,15 @@ const repository = require('../../services/repository');
const noteCacheService = require('../../services/note_cache/note_cache.js');
const log = require('../../services/log');
const scriptService = require('../../services/script');
const searchService = require('../../services/search');
const searchService = require('../../services/search/search');
async function searchNotes(req) {
const noteIds = await searchService.searchForNoteIds(req.params.searchString);
const notePaths = await searchService.searchNotes(req.params.searchString);
try {
return {
success: true,
results: noteIds.map(noteCacheService.getNotePath).filter(res => !!res)
results: notePaths
}
}
catch {

View File

@ -13,6 +13,7 @@ const PROP_MAPPING = {
"type": "type",
"mime": "mime",
"isprotected": "isProtected",
"isarhived": "isArchived",
"datecreated": "dateCreated",
"datemodified": "dateModified",
"utcdatecreated": "utcDateCreated",

View File

@ -75,6 +75,23 @@ async function findNotesWithQuery(query, parsingContext) {
return await findNotesWithExpression(expression);
}
async function searchNotes(query) {
if (!query.trim().length) {
return [];
}
const parsingContext = new ParsingContext({
includeNoteContent: true,
fuzzyAttributeSearch: false
});
let searchResults = await findNotesWithQuery(query, parsingContext);
searchResults = searchResults.slice(0, 200);
return searchResults;
}
async function searchNotesForAutocomplete(query) {
if (!query.trim().length) {
return [];
@ -85,7 +102,7 @@ async function searchNotesForAutocomplete(query) {
fuzzyAttributeSearch: true
});
let searchResults = findNotesWithQuery(query, parsingContext);
let searchResults = await findNotesWithQuery(query, parsingContext);
searchResults = searchResults.slice(0, 200);
@ -154,6 +171,7 @@ function formatAttribute(attr) {
}
module.exports = {
searchNotes,
searchNotesForAutocomplete,
findNotesWithQuery
};