I changed it to $or and results don't go away when I search for something unrelated. Here is the code I used.
var select = localStorage.getItem("bookid");
var search = Apperyio("mobilesearchbar_282").val();
var cow =Apperyio('mobiletextinput_cowid').val();
var sire =Apperyio('mobiletextinput_405sire').val();
var color =Apperyio('mobiletextinput_406color').val();
return '{"$or":[,{"calf_id":"'+search +'"},{"cow_id":"'+cow+'"},{"sire":"'+sire+'"},{"color":"'+color+'"} ]}';
My app is shared with support and called The Calving Book. The screen1 search_service is where you will find this implementation.