The above produces the desired behaviour - and although ember js prefers convention over configuration it feels like there is still a lot of ways to do the same thing.
I think a good rule of thumb is that any time the state of your application changes, it should be handled by the router. In your case, if the user hits refresh, then you’re losing the state of the search.
In the meantime, there’s a few other things you can do. For example, you could serialize the query into a normal URL segment…that could looks something like this: