私の英語は大変申し訳ありません。IndexedDBファジー検索
私は入力ボックスに何かを入力すると示唆するWebプロジェクトで作業していますが、IndexedDBを使用してFirefoxのクエリ速度を向上させたいとします。 WebSQLで
私はこの文を持っている:
db.transaction(function (tx) {
var SQL = 'SELECT "column1",
"column2"
FROM "table"
WHERE "column1" LIKE ?
ORDER BY "sortcolumn" DESC
LIMIT 6';
tx.executeSql(SQL, [searchTerm + '%'], function(tx, rs) {
// Process code here
});
});
は私がのIndexedDBと同じことをしたいと私はこのコードを持っている:
db.transaction(['table'], 'readonly')
.objectStore('table')
.index('sortcolumn')
.openCursor(null, 'prev')
.onsuccess = function (e) {
e || (e = event);
var cursor = e.target.result;
if (cursor) {
if (cursor.value.column1.substr(0, searchTerm.length) == searchTerm) {
// Process code here
} else {
cursor.continue();
}
}
};
をしかしそこにあまりにも遅いですし、私のコードにバグ..です私はこれを行うより良い方法があることを知りたいです。
ありがとうございます。
ありがとう!これは、私にとっては3500msから140msに短縮されました。 – pimvdb
@pimvdbあなたが役に立ったと知りました。結果をソートする例をいくつか追加しました。 –
'\ uffff'をzではなくダガーとして使う方が良いでしょう。あなたは、 "wiki"を検索するときに "wikipædia"のような検索結果を得ることはありません。 –