It seems to me that the search method as implemented is not so useful and dangerous.
In fact, if I search for "toto" then I find "toto" if it exists, but thereafter there is no more synchronization between the record I click and the corresponding index in the whole (with all records) array.
So if I attempt to delete the selected record (say the fourth one, which is the twentieth in the whole array) or to insert a record without changing the search string, I don't delete the record I've selected (truly the 20th), but the record in the whole array whose index is the same as the record in the subset (the 4th); the same for inserting. Very dangerous.
If I changed the search string so that the textfield is empty, I obtain the whole array, but the selected record is no more the one I selected when I saw the subset. So, it's not very useful.
I've searched a way to change the behaviour, maybe with a combobox to allow selecting the different visible columns and a new tableview, and then swap the two tableviews as needed, to gain the same benefit as in Mail when searching a folder for a message. By now, those are only ideas, maybe not good ones.