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

This commit is contained in:
Book Pauk
2022-10-23 19:05:17 +07:00
parent ea6d61ac6f
commit 784dda03fd
2 changed files with 5 additions and 4 deletions

View File

@@ -1124,6 +1124,7 @@ class Search {
const s = this.search;
const emptyFieldValue = '?';
const maxUtf8Char = String.fromCodePoint(0xFFFFF);
const ruAlphabet = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
const enAlphabet = 'abcdefghijklmnopqrstuvwxyz';
const enru = new Set((ruAlphabet + enAlphabet).split(''));
@@ -1151,7 +1152,7 @@ class Search {
if (searchValue[0] == '=') {
searchValue = searchValue.substring(1);
return bookValue == searchValue;
return bookValue.localeCompare(searchValue) == 0;
} else if (searchValue[0] == '*') {
searchValue = searchValue.substring(1);
@@ -1163,8 +1164,8 @@ class Search {
} else if (searchValue[0] == '?') {
return bookValue == '' || bookValue.indexOf(searchValue) == 0;
} else {
return bookValue.indexOf(searchValue) == 0;
//where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`;
return bookValue.localeCompare(searchValue) >= 0 && bookValue.localeCompare(searchValue + maxUtf8Char) <= 0;
}
};

View File

@@ -45,7 +45,7 @@ class DbSearcher {
a = a.substring(1);
where = `@indexIter('value', (v) => {
const enru = new Set(${db.esc(enruArr)});
return !v || (!enru.has(v[0].toLowerCase()) && v.indexOf(${db.esc(a)}) >= 0);
return !v || (!enru.has(v[0]) && v.indexOf(${db.esc(a)}) >= 0);
})`;
} else {
where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`;