Collects the results from a search engine query. Clients implement a subclass to pass to
SearchEngine.search and implement the {@link #acceptSearchMatch(SearchMatch)} method, andpossibly override other life cycle methods.
The search engine calls beginReporting() when a search starts, then calls acceptSearchMatch(...) for each search result, and finally calls endReporting(). The order of the search results is unspecified and may vary from request to request; when displaying results, clients should not rely on the order but should instead arrange the results in an order that would be more meaningful to the user.
@see SearchEngine
@since 3.0