Index: src/java/org/apache/wiki/search/BasicSearchProvider.java
===================================================================
--- src/java/org/apache/wiki/search/BasicSearchProvider.java	(revision 770078)
+++ src/java/org/apache/wiki/search/BasicSearchProvider.java	(working copy)
@@ -144,7 +144,7 @@
         return "";
     }
 
-    private Collection<SearchResult> findPages( QueryItem[] query )
+    private SortedSet<SearchResult> findPages( QueryItem[] query )
     {
         TreeSet<SearchResult> res = new TreeSet<SearchResult>( new SearchResultComparator() );
         SearchMatcher matcher = new SearchMatcher( m_engine, query );
@@ -192,9 +192,9 @@
     /**
      *  {@inheritDoc}
      */
-    public Collection<SearchResult> findPages(String query)
+    public List<SearchResult> findPages(String query)
     {
-        return findPages(parseQuery(query));
+        return new ArrayList<SearchResult>( findPages( parseQuery( query ) ) );
     }
 
     /**
Index: src/java/org/apache/wiki/search/LuceneSearchProvider.java
===================================================================
--- src/java/org/apache/wiki/search/LuceneSearchProvider.java	(revision 770078)
+++ src/java/org/apache/wiki/search/LuceneSearchProvider.java	(working copy)
@@ -528,7 +528,7 @@
     /**
      *  {@inheritDoc}
      */
-    public Collection<SearchResult> findPages( String query )
+    public List<SearchResult> findPages( String query )
         throws ProviderException
     {
         return findPages( query, FLAG_CONTEXTS );
@@ -545,10 +545,10 @@
      *
      *  @param query The query to perform in Lucene query language
      *  @param flags A set of flags
-     *  @return A Collection of SearchResult instances
+     *  @return the ordered list of SearchResult instances in descending quality order (i.e. best match first)
      *  @throws ProviderException if there is a problem with the backend
      */
-    public Collection<SearchResult> findPages( String query, int flags )
+    public List<SearchResult> findPages( String query, int flags )
         throws ProviderException
     {
         Searcher  searcher = null;
Index: src/java/org/apache/wiki/search/SearchProvider.java
===================================================================
--- src/java/org/apache/wiki/search/SearchProvider.java	(revision 770078)
+++ src/java/org/apache/wiki/search/SearchProvider.java	(working copy)
@@ -21,7 +21,7 @@
 package org.apache.wiki.search;
 
 import java.io.IOException;
-import java.util.Collection;
+import java.util.List;
 
 import org.apache.wiki.WikiProvider;
 import org.apache.wiki.api.WikiPage;
@@ -53,11 +53,12 @@
     public void reindexPage(WikiPage page) throws ProviderException;
 
     /**
-     * Search for pages matching a search query
+     * Search for pages matching a search query returning an ordered list of results.
+     * 
      * @param query query to search for
-     * @return collection of pages that match query
+     * @return the ordered list of SearchResults that match query, in descending quality order (i.e. best match first)
      * @throws ProviderException if the search provider failed.
      * @throws IOException if for some reason the query could not be executed.
      */
-    public Collection<SearchResult> findPages(String query) throws ProviderException, IOException;
+    public List<SearchResult> findPages(String query) throws ProviderException, IOException;
 }
