Fuse.js

A lightweight JavaScript library for searching, which allows for more flexible and forgiving searches.