def search_each(query, options = {}) # :yield: doc, score
      @dir.synchronize do
        ensure_searcher_open()
        query = do_process_query(query)

        @searcher.search_each(query, options) do |doc, score|
          yield doc, score
        end
      end
    end
def search_each(query, options = {}) # :yield: doc, score
      @dir.synchronize do
        ensure_searcher_open()
        query = do_process_query(query)

        @searcher.search_each(query, options) do |doc, score|
          yield doc, score
        end
      end
    end
Run a query through the Searcher on the index. A TopDocs object is
 returned with the relevant results. The +query+ is a Query object or a
 query string that can be validly parsed by the Ferret::QueryParser. The
 Searcher#search_each method yields the internal document id (used to
 reference documents in the Searcher object like this;
 +searcher[doc_id]+) and the search score for that document. It is
 possible for the score to be greater than 1.0 for some queries and
 taking boosts into account. This method will also normalize scores to
 the range 0.0..1.0 when the max-score is greater than 1.0. Here are the
 options;

 === Options

 offset::      Default: 0. The offset of the start of the section of the
               result-set to return. This is used for paging through
               results. Let's say you have a page size of 10. If you
               don't find the result you want among the first 10 results
               then set +:offset+ to 10 and look at the next 10 results,
               then 20 and so on.
 limit::       Default: 10. This is the number of results you want
               returned, also called the page size. Set +:limit+ to
               +:all+ to return all results
 sort::        A Sort object or sort string describing how the field
               should be sorted. A sort string is made up of field names
               which cannot contain spaces and the word "DESC" if you
               want the field reversed, all separated by commas. For
               example; "rating DESC, author, title". Note that Ferret
               will try to determine a field's type by looking at the
               first term in the index and seeing if it can be parsed as
               an integer or a float. Keep this in mind as you may need
               to specify a fields type to sort it correctly. For more
               on this, see the documentation for SortField
 filter::      a Filter object to filter the search results with
 filter_proc:: a filter Proc is a Proc which takes the doc_id, the score
               and the Searcher object as its parameters and returns a
               Boolean value specifying whether the result should be
               included in the result set.

 returns:: The total number of hits.

 === Example
 eg.
   index.search_each(query, options = {}) do |doc, score|
     puts "hit document number #{doc} with a score of #{score}"
   end