diff --git a/client/components/Search/Search.vue b/client/components/Search/Search.vue index 853302b..50561ef 100644 --- a/client/components/Search/Search.vue +++ b/client/components/Search/Search.vue @@ -1145,6 +1145,9 @@ class Search { if (!searchValue) return true; + if (!bookValue) + bookValue = emptyFieldValue; + bookValue = bookValue.toLowerCase(); searchValue = searchValue.toLowerCase(); @@ -1156,13 +1159,11 @@ class Search { } else if (searchValue[0] == '*') { searchValue = searchValue.substring(1); - return bookValue.indexOf(searchValue) >= 0; + return bookValue !== emptyFieldValue && bookValue.indexOf(searchValue) >= 0; } else if (searchValue[0] == '#') { searchValue = searchValue.substring(1); return !bookValue || (bookValue !== emptyFieldValue && !enru.has(bookValue[0]) && bookValue.indexOf(searchValue) >= 0); - } else if (searchValue[0] == '?') { - return bookValue == '' || bookValue.indexOf(searchValue) == 0; } else { //where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`; return bookValue.localeCompare(searchValue) >= 0 && bookValue.localeCompare(searchValue + maxUtf8Char) <= 0; diff --git a/server/core/DbSearcher.js b/server/core/DbSearcher.js index 5d9cc2e..f4e24f6 100644 --- a/server/core/DbSearcher.js +++ b/server/core/DbSearcher.js @@ -41,7 +41,7 @@ class DbSearcher { where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a)})`; } else if (a[0] == '*') { a = a.substring(1); - where = `@indexIter('value', (v) => (v.indexOf(${db.esc(a)}) >= 0) )`; + where = `@indexIter('value', (v) => (v !== ${db.esc(emptyFieldValue)} && v.indexOf(${db.esc(a)}) >= 0) )`; } else if (a[0] == '#') { a = a.substring(1); where = `@indexIter('value', (v) => {