I have written a blog about this topic. Check it out to give you an idea.
You need to create a SearchHelper Entity and place a dataview on the page. The SearchHelper has an attribute called SearchString. The search button updates the SearchHelper. Place the results Listview inside the dataview so that when the SearchHelper is changed the Listview refreshes. The Listview has a datasource nanoflow that finds all results matching the SearchString.