Decoupled search from library (sifter.js dependency).