loop through the table/object store values and see if the current cursor column contains the keyword:

var keyword = "foo";
var transaction = db.transaction("table", "readwrite");
var objectStore = transaction.objectStore("table");
var request = objectStore.openCursor();
request.onsuccess = function(event) {
	var cursor = event.target.result;
	if (cursor) {
		if (cursor.value.column.indexOf(keyword) !== -1) {
			console.log("We found a row with value: " + JSON.stringify(cursor.value));
		}  
		cursor.continue();		  
	}
};


to INSERT or UPDATE records, use objectStore.put(object)
only want to INSERT records, use objectStore.add(object)

Offline Add, Edit, Delete Data in HTML5 IndexedDB

Searching for array elements in IndexedDB
some magic with indexedDB
fundamentals plus a indexeddb example tutorial

IndexedDB Libraries worth checking out

Service Worker Libraries worth checking out