This topic解释了如何使用IndexedDB在搜索项结束时使用通配符。
我正在寻找一种在搜索结果的结尾和开头添加通配符的方法。
在SQL中它将是:LIKE '%SearchTerm%'
。
如何使用IndexedDB实现这一目标?这是我的代码:
function getMaterials() {
var materialNumber = $("#input").val();
var transaction = db.transaction(["materials"]);
var objectStore = transaction.objectStore("materials");
var request = objectStore.openCursor(IDBKeyRange.bound(materialNumber, materialNumber + '\uffff'), 'prev');
$("#output").find("tr:gt(0)").remove();
request.onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
var newRow = '<tr><td>'+ cursor.value.materialNumber +'</td>'+
'<td>'+ cursor.value.description +'</td>'+
'<td>'+ cursor.value.pieces +'</td>'+
'<td>'+ cursor.value.price +'</td></tr>';
$('#output').append(newRow);
cursor.continue();
}
};
};
编辑:
我可以通过让indexDB返回所有行然后在JavaScript中缩小来实现这一点。但在绩效方面必须有更好的方法。
if (cursor.value.materialNumber.indexOf(materialNumber) != -1){
//add result...
}
答案 0 :(得分:0)
这不是idb的用途。如果要进行文本搜索,请将文本解析为标记,存储标记,在标记上使用索引,并对索引执行查找以获取指向全文的指针。