There is not that much dos on the topic, I know, so here are few tips for you:
It's using a class that extends EntityQuery. You can find a static RESTRICTIONS array there - that's where the conditions are 'assembled'. Entity query takes care of building the dynamic query.
To actually trigger the search a pull style MVC is used (someone correct me if I am wrong here): http://docs.jboss.com/seam/latest/reference/en/html/tutorial.html#blog
EntityQuery isn't described in that section but it's still seem to be used in this way.
Thanks for your help. At first glance, I thought the search query was initiated by the search button. But now I know that the query was initiated when the page was rendered. The search button only re-renders the page