Browse Source

Поправки багов поиска

Book Pauk 2 years ago
parent
commit
723af3ea8b
2 changed files with 5 additions and 4 deletions
  1. 4 3
      client/components/Search/Search.vue
  2. 1 1
      server/core/DbSearcher.js

+ 4 - 3
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;

+ 1 - 1
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) => {