IndexedDB Fuzzy Search

6 浏览
0 Comments

IndexedDB Fuzzy Search

首先,对我的英语表示抱歉。

我正在开发一个网页项目,在输入框中输入内容时会显示建议,但我想使用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) {
    // 在这里处理代码
  });
});

我想用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) {
            // 在这里处理代码
        } else {
            cursor.continue();
        }
    }
};

但这个代码太慢了,而且有bug。我想知道有没有更好的方法来做到这一点。

谢谢回复。

0