[mb-commits] r13640 - in search_server/trunk/servlet/src: main/java/org/musicbrainz/search/servlet main/java/org/musicbrainz/search/servlet/mmd1 main/java/org/musicbrainz/search/servlet/mmd2 test/java/org/musicbrainz/search/servlet

[email protected] Thu, 28 Feb 2013 10:38:07 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1UB0sJ-00012u-39@wiley>
Author: ijabz
Date: 2013-02-28 10:38:05 +0000 (Thu, 28 Feb 2013)
New Revision: 13640

Modified:
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AnnotationSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/CDStubSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/FreeDBSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/RecordingSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseGroupSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Result.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ResultsWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TagSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TestSearchOnly.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/WorkSearch.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ArtistMmd1XmlWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseGroupMmd1XmlWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseMmd1XmlWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/TrackMmd1XmlWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AnnotationWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ArtistWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/CDStubWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/FreeDBWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseGroupWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/TagWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindAnnotationTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindArtistTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindCDStubTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindFreeDBTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseGroupTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindTagTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/ReloadIndexesTest.java
Log:
#SEARCH-77:Support for interleaving search results from allsearch

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AbstractSearchServer.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -29,7 +29,6 @@
 package org.musicbrainz.search.servlet;
 
 import java.io.IOException;
-import java.math.BigInteger;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -39,7 +38,6 @@
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.LongField;
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queryparser.classic.ParseException;
@@ -53,7 +51,6 @@
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.NumericUtils;
 import org.musicbrainz.search.MbDocument;
-import org.musicbrainz.search.index.LabelIndexField;
 import org.musicbrainz.search.index.MetaIndexField;
 import org.musicbrainz.search.servlet.mmd1.Mmd1XmlWriter;
 import org.musicbrainz.search.servlet.mmd2.ResultsWriter;
@@ -236,16 +233,16 @@
    * @return
    * @throws IOException
    */
-  private Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException {
+  protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException {
     Results results = new Results();
-    results.offset = offset;
-    results.totalHits = topDocs.totalHits;
+    results.setOffset(offset);
+    results.setTotalHits(topDocs.totalHits);
     ScoreDoc docs[] = topDocs.scoreDocs;
-    results.maxScore=topDocs.getMaxScore();
+    results.setMaxScore(topDocs.getMaxScore());
     for (int i = offset; i < docs.length; i++) {
       Result result     = new Result();
-      result.score      = docs[i].score;
-      result.doc        = new MbDocument(searcher.doc(docs[i].doc));
+      result.setScore(docs[i].score);
+      result.setDoc(new MbDocument(searcher.doc(docs[i].doc)));
       results.results.add(result);
     }
     return results;

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AnnotationSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AnnotationSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/AnnotationSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.LuceneVersion;
 import org.musicbrainz.search.index.AnnotationIndexField;
 import org.musicbrainz.search.index.DatabaseIndex;
@@ -34,6 +36,20 @@
     resultsWriter.setLastServerUpdatedDate(this.getServerLastUpdatedDate());
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.ANNOTATION);
+        return results;
+    }
 
   @Override
   public QueryParser getParser() {

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,55 +6,78 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.ArtistIndexField;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.servlet.mmd1.ArtistMmd1XmlWriter;
 import org.musicbrainz.search.servlet.mmd2.ArtistWriter;
 
 
-public class ArtistSearch extends AbstractSearchServer {
+public class ArtistSearch extends AbstractSearchServer
+{
 
-  protected void setupDefaultFields() {
-    defaultFields = new ArrayList<String>();
-    defaultFields.add(ArtistIndexField.ARTIST.getName());
-    defaultFields.add(ArtistIndexField.ALIAS.getName());
-    defaultFields.add(ArtistIndexField.SORTNAME.getName());
-  }
+    protected void setupDefaultFields()
+    {
+        defaultFields = new ArrayList<String>();
+        defaultFields.add(ArtistIndexField.ARTIST.getName());
+        defaultFields.add(ArtistIndexField.ALIAS.getName());
+        defaultFields.add(ArtistIndexField.SORTNAME.getName());
+    }
 
 
-  private ArtistSearch() throws Exception {
-    resultsWriter = new ArtistWriter();
-    mmd1Writer = new ArtistMmd1XmlWriter();
-    setupDefaultFields();
-    analyzer = DatabaseIndex.getAnalyzer(ArtistIndexField.class);
-  }
+    private ArtistSearch() throws Exception
+    {
+        resultsWriter = new ArtistWriter();
+        mmd1Writer = new ArtistMmd1XmlWriter();
+        setupDefaultFields();
+        analyzer = DatabaseIndex.getAnalyzer(ArtistIndexField.class);
+    }
 
-  /**
-   * Standard Search
-   *
-   * @param searcher
-   * @throws Exception
-   */
-  public ArtistSearch(SearcherManager searcherManager) throws Exception {
-    this();
-    this.searcherManager = searcherManager;
-    setLastServerUpdatedDate();
-    resultsWriter.setLastServerUpdatedDate(this.getServerLastUpdatedDate());
+    /**
+     * Standard Search
+     *
+     * @param searcherManager
+     * @throws Exception
+     */
+    public ArtistSearch(SearcherManager searcherManager) throws Exception
+    {
+        this();
+        this.searcherManager = searcherManager;
+        setLastServerUpdatedDate();
+        resultsWriter.setLastServerUpdatedDate(this.getServerLastUpdatedDate());
 
-  }
+    }
 
-  @Override
-  public QueryParser getParser() {
-    return new ArtistQueryParser(defaultFields.toArray(new String[0]), analyzer);
-  }
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.ARTIST);
+        return results;
+    }
 
-  @Override
-  protected  String printExplainHeader(Document doc)
-      throws IOException, ParseException {
-    return doc.get(ArtistIndexField.ARTIST_ID.getName()) +':'
-        + doc.get(ArtistIndexField.ARTIST.getName())
-        + '\n';
-  }
+    @Override
+    public QueryParser getParser()
+    {
+        return new ArtistQueryParser(defaultFields.toArray(new String[0]), analyzer);
+    }
 
+    @Override
+    protected String printExplainHeader(Document doc)
+            throws IOException, ParseException
+    {
+        return doc.get(ArtistIndexField.ARTIST_ID.getName()) + ':'
+                + doc.get(ArtistIndexField.ARTIST.getName())
+                + '\n';
+    }
+
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/CDStubSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/CDStubSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/CDStubSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -7,7 +7,9 @@
 import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.LuceneVersion;
 import org.musicbrainz.search.index.CDStubIndexField;
 import org.musicbrainz.search.index.DatabaseIndex;
@@ -45,4 +47,19 @@
         + doc.get(CDStubIndexField.TITLE.getName())
         + '\n';
   }
+
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.CDSTUB);
+        return results;
+    }
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/FreeDBSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/FreeDBSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/FreeDBSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -7,7 +7,9 @@
 import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.LuceneVersion;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.FreeDBIndexField;
@@ -48,4 +50,18 @@
         + '\n';
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.FREEDB);
+        return results;
+    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.LabelIndexField;
 import org.musicbrainz.search.servlet.mmd1.LabelMmd1XmlWriter;
@@ -45,4 +47,18 @@
     return doc.get(LabelIndexField.LABEL_ID.getName()) + ':' + doc.get(LabelIndexField.LABEL.getName()) + '\n';
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.LABEL);
+        return results;
+    }
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/RecordingSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/RecordingSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/RecordingSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.RecordingIndexField;
 import org.musicbrainz.search.servlet.mmd1.TrackMmd1XmlWriter;
@@ -46,5 +48,18 @@
         + doc.get(RecordingIndexField.RECORDING_OUTPUT.getName()) + '\n';
   }
 
-
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.RECORDING);
+        return results;
+    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseGroupSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseGroupSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseGroupSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.ReleaseGroupIndexField;
 import org.musicbrainz.search.servlet.mmd1.ReleaseGroupMmd1XmlWriter;
@@ -45,4 +47,18 @@
         + doc.get(ReleaseGroupIndexField.RELEASE.getName()) + '\n';
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.RELEASE_GROUP);
+        return results;
+    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.ReleaseIndexField;
 import org.musicbrainz.search.servlet.mmd1.ReleaseMmd1XmlWriter;
@@ -44,4 +46,19 @@
     return doc.get(ReleaseIndexField.RELEASE_ID.getName()) + ':' + doc.get(ReleaseIndexField.RELEASE.getName()) + '\n';
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.RELEASE);
+        return results;
+    }
+
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Result.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Result.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Result.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -30,11 +30,17 @@
 
 import org.musicbrainz.search.MbDocument;
 
-public class Result {
+public class Result implements Comparable<Result>{
 
-	public MbDocument doc;
-	public float score;
+	private MbDocument   doc;
+	private float        score;
+    private int          normalizedScore;
+    private ResourceType resourceType;
 
+
+    public Result() {
+    }
+
 	public MbDocument getDoc() {
 		return doc;
 	}
@@ -43,7 +49,40 @@
 		return score;
 	}
 
-	public Result() {
+    public void setNormalizedScore(float maxScore)
+    {
+        normalizedScore = (((int)(((float)(getScore() / maxScore)) * 100)));
     }
 
+    public int compareTo(Result result)
+    {
+        return  (getNormalizedScore() < result.getNormalizedScore() ? -1 : (getNormalizedScore() == result.getNormalizedScore() ? 0 : 1));
+
+    }
+
+    public void setDoc(MbDocument doc)
+    {
+        this.doc = doc;
+    }
+
+    public void setScore(float score)
+    {
+        this.score = score;
+    }
+
+    public int getNormalizedScore()
+    {
+        return normalizedScore;
+    }
+
+
+    public ResourceType getResourceType()
+    {
+        return resourceType;
+    }
+
+    public void setResourceType(ResourceType resourceType)
+    {
+        this.resourceType = resourceType;
+    }
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -36,9 +36,11 @@
  */
 public class Results implements Comparable<Results>{
 
-    public float maxScore=0.0f;
-    public int offset;
-    public int totalHits;
+    private float maxScore=0.0f;
+    private int offset;
+    private int totalHits;
+    private ResourceType resourceType;
+
     public List<Result> results;
 
     public Results() {
@@ -49,9 +51,9 @@
     {
         //If I don't explicity check for Nan behaviour is inconsistent test fails under maven, possibly a fix in java version
         //As we are only ever comparing 6 numbers not a big deal
-        if(Float.isNaN(maxScore))
+        if(Float.isNaN(getMaxScore()))
         {
-            if(Float.isNaN(results.maxScore))
+            if(Float.isNaN(results.getMaxScore()))
             {
                 return 0;
             }
@@ -60,13 +62,52 @@
                 return -1;
             }
         }
-        if(Float.isNaN(results.maxScore))
+        if(Float.isNaN(results.getMaxScore()))
         {
             return 1;
         }
-        int result =  (maxScore<results.maxScore ? -1 : (maxScore==results.maxScore ? 0 : 1));
+        int result =  (getMaxScore() < results.getMaxScore() ? -1 : (getMaxScore() == results.getMaxScore() ? 0 : 1));
         return result;
 
     }
 
+    public float getMaxScore()
+    {
+        return maxScore;
+    }
+
+    public void setMaxScore(float maxScore)
+    {
+        this.maxScore = maxScore;
+    }
+
+    public int getOffset()
+    {
+        return offset;
+    }
+
+    public void setOffset(int offset)
+    {
+        this.offset = offset;
+    }
+
+    public int getTotalHits()
+    {
+        return totalHits;
+    }
+
+    public void setTotalHits(int totalHits)
+    {
+        this.totalHits = totalHits;
+    }
+
+    public ResourceType getResourceType()
+    {
+        return resourceType;
+    }
+
+    public void setResourceType(ResourceType resourceType)
+    {
+        this.resourceType = resourceType;
+    }
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ResultsWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ResultsWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ResultsWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -77,10 +77,4 @@
     {
         return serverLastUpdatedDate;
     }
-
-    protected String calculateNormalizedScore(Result result, float maxScore)
-    {
-        return String.valueOf((int)(((float)(result.score  / maxScore)) * 100));
-    }
-
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TagSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TagSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TagSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.TagIndexField;
 import org.musicbrainz.search.servlet.mmd2.TagWriter;
@@ -50,4 +52,18 @@
     return doc.get(TagIndexField.ID.getName()) + ':' + doc.get(TagIndexField.TAG.getName()) + '\n';
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.TAG);
+        return results;
+    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TestSearchOnly.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TestSearchOnly.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/TestSearchOnly.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -30,7 +30,6 @@
 
 import org.apache.lucene.index.CorruptIndexException;
 import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.MMapDirectory;
@@ -184,7 +183,7 @@
         long queryInMs = ((end - start) / 1000000 );
         totalQueryTime+=queryInMs;
         //System.out.println(URLDecoder.decode(url.toString(),"UTF8"));
-        System.out.println("url ok :" + URLDecoder.decode(url.toString(), "UTF8") + ":" + results.totalHits + ":" + queryInMs + " ms");
+        System.out.println("url ok :" + URLDecoder.decode(url.toString(), "UTF8") + ":" + results.getTotalHits() + ":" + queryInMs + " ms");
         //System.out.println(((end - start) / 1000000));
 
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/WorkSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/WorkSearch.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/WorkSearch.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -6,7 +6,9 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherManager;
+import org.apache.lucene.search.TopDocs;
 import org.musicbrainz.search.index.DatabaseIndex;
 import org.musicbrainz.search.index.WorkIndexField;
 import org.musicbrainz.search.servlet.mmd2.WorkWriter;
@@ -46,4 +48,18 @@
         + '\n';
   }
 
+    /**
+     *
+     * @param searcher
+     * @param topDocs
+     * @param offset
+     * @return
+     * @throws IOException
+     */
+    protected Results processResults(IndexSearcher searcher, TopDocs topDocs, int offset) throws IOException
+    {
+        Results results = super.processResults(searcher, topDocs, offset);
+        results.setResourceType(ResourceType.WORK);
+        return results;
+    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ArtistMmd1XmlWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ArtistMmd1XmlWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ArtistMmd1XmlWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -50,7 +50,7 @@
         ArtistList artistList = of.createArtistList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Artist artist = of.createArtist();
 
             artist.setId(doc.get(ArtistIndexField.ARTIST_ID));
@@ -60,9 +60,9 @@
                 artist.setType(StringUtils.capitalize(artype));
             }
 
+            result.setNormalizedScore(results.getMaxScore());
+            artist.getOtherAttributes().put(getScore(), String.valueOf(result.getNormalizedScore()));
 
-            artist.getOtherAttributes().put(getScore(), calculateNormalizedScore(result, results.maxScore));
-
             String name = doc.get(ArtistIndexField.ARTIST);
             if (name != null) {
                 artist.setName(name);
@@ -99,8 +99,8 @@
             artistList.getArtist().add(artist);
 
         }
-        artistList.setCount(BigInteger.valueOf(results.totalHits));
-        artistList.setOffset(BigInteger.valueOf(results.offset));
+        artistList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        artistList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setArtistList(artistList);
         return metadata;
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -30,8 +30,6 @@
 
 import com.jthink.brainz.mmd.*;
 import org.apache.commons.lang.StringUtils;
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.NumericUtils;
 import org.musicbrainz.search.MbDocument;
 import org.musicbrainz.search.index.LabelIndexField;
 import org.musicbrainz.search.servlet.Result;
@@ -48,7 +46,7 @@
         LabelList labelList = of.createLabelList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Label label = of.createLabel();
             label.setId(doc.get(LabelIndexField.LABEL_ID));
 
@@ -57,7 +55,8 @@
                 label.setType(StringUtils.capitalize(doc.get(LabelIndexField.TYPE)));
             }
 
-            label.getOtherAttributes().put(getScore(), calculateNormalizedScore(result, results.maxScore));
+            result.setNormalizedScore(results.getMaxScore());
+            label.getOtherAttributes().put(getScore(), String.valueOf(result.getNormalizedScore()));
 
             String name = doc.get(LabelIndexField.LABEL);
             if (name != null) {
@@ -96,8 +95,8 @@
             labelList.getLabel().add(label);
 
         }
-        labelList.setCount(BigInteger.valueOf(results.totalHits));
-        labelList.setOffset(BigInteger.valueOf(results.offset));
+        labelList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        labelList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setLabelList(labelList);
         return metadata;
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseGroupMmd1XmlWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseGroupMmd1XmlWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseGroupMmd1XmlWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -51,11 +51,12 @@
         ReleaseGroupList releaseGroupList = of.createReleaseGroupList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             ReleaseGroup releaseGroup = of.createReleaseGroup();
             releaseGroup.setId(doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
 
-            releaseGroup.getOtherAttributes().put(getScore(), calculateNormalizedScore(result, results.maxScore));
+            result.setNormalizedScore(results.getMaxScore());
+            releaseGroup.getOtherAttributes().put(getScore(), String.valueOf(result.getNormalizedScore()));
 
             String name = doc.get(ReleaseGroupIndexField.RELEASEGROUP);
             if (name != null) {
@@ -82,8 +83,8 @@
             }
             releaseGroupList.getReleaseGroup().add(releaseGroup);
         }
-        releaseGroupList.setCount(BigInteger.valueOf(results.totalHits));
-        releaseGroupList.setOffset(BigInteger.valueOf(results.offset));
+        releaseGroupList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        releaseGroupList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setReleaseGroupList(releaseGroupList);
         return metadata;
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseMmd1XmlWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseMmd1XmlWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/ReleaseMmd1XmlWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -53,7 +53,7 @@
         ReleaseList releaseList = of.createReleaseList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Release release = of.createRelease();
             release.setId(doc.get(ReleaseIndexField.RELEASE_ID));
 
@@ -69,7 +69,8 @@
                 }
             }
 
-            release.getOtherAttributes().put(getScore(), calculateNormalizedScore(result, results.maxScore));
+            result.setNormalizedScore(results.getMaxScore());
+            release.getOtherAttributes().put(getScore(), String.valueOf(result.getNormalizedScore()));
 
             String name = doc.get(ReleaseIndexField.RELEASE);
             if (name != null) {
@@ -212,8 +213,8 @@
             }
             releaseList.getRelease().add(release);
         }
-        releaseList.setCount(BigInteger.valueOf(results.totalHits));
-        releaseList.setOffset(BigInteger.valueOf(results.offset));
+        releaseList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        releaseList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setReleaseList(releaseList);
         return metadata;
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/TrackMmd1XmlWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/TrackMmd1XmlWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/TrackMmd1XmlWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -53,13 +53,14 @@
         TrackList trackList = of.createTrackList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Track track = of.createTrack();
 
             track.setId(doc.get(RecordingIndexField.RECORDING_ID));
-            
-            track.getOtherAttributes().put(getScore(), calculateNormalizedScore(result, results.maxScore));
 
+            result.setNormalizedScore(results.getMaxScore());
+            track.getOtherAttributes().put(getScore(), String.valueOf(result.getNormalizedScore()));
+
             String name = doc.get(RecordingIndexField.RECORDING_OUTPUT);
 
             if (name != null) {
@@ -118,8 +119,8 @@
             track.setReleaseList(releaseList);
             trackList.getTrack().add(track);
         }
-        trackList.setCount(BigInteger.valueOf(results.totalHits));
-        trackList.setOffset(BigInteger.valueOf(results.offset));
+        trackList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        trackList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setTrackList(trackList);
         return metadata;
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -1,10 +1,13 @@
 package org.musicbrainz.search.servlet.mmd2;
 
+import org.musicbrainz.mmd2.EntityList;
 import org.musicbrainz.mmd2.Metadata;
 import org.musicbrainz.mmd2.ObjectFactory;
+import org.musicbrainz.search.servlet.Result;
 import org.musicbrainz.search.servlet.Results;
 
 import java.io.IOException;
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -43,6 +46,8 @@
 
     public Metadata write(Results results) throws IOException {
 
+        List<Result> allResults = new ArrayList<Result>();
+
         //Sort by best max score, then set this as the max score for each entity
         List<Results> resultsList = new ArrayList<Results>();
         resultsList.add(artistResults);
@@ -51,34 +56,81 @@
         resultsList.add(labelResults);
         resultsList.add(recordingResults);
         resultsList.add(workResults);
+
+        //Find the best score
         Collections.sort(resultsList);
         Collections.reverse(resultsList);
-        float bestMaxScore=resultsList.get(0).maxScore;
+        float bestMaxScore= resultsList.get(0).getMaxScore();
         for(Results next:resultsList)
         {
-            System.out.println(next.maxScore);
-            next.maxScore=bestMaxScore;
+            next.setMaxScore(bestMaxScore);
+            //Calculate Normalized Scores and set resourcetype
+            for(Result nextResult:next.results)
+            {
+                nextResult.setNormalizedScore(bestMaxScore);
+                nextResult.setResourceType(next.getResourceType());
+            }
+            allResults.addAll(next.results);
         }
+        //Now sort merged results
+        Collections.sort(allResults);
+        Collections.reverse(allResults);
+
+        //Create entitylist stuff
         ObjectFactory of  = new ObjectFactory();
-        Metadata metadata = of.createMetadata();
+        Metadata metadata       = of.createMetadata();
+        EntityList entityList   = of.createEntityList();
+        metadata.setEntityList(entityList);
 
         ArtistWriter artistWriter = new ArtistWriter();
-        artistWriter.write(metadata, artistResults);
-
         ReleaseWriter releaseWriter = new ReleaseWriter();
-        releaseWriter.write(metadata, releaseResults);
-
         ReleaseGroupWriter releaseGroupWriter = new ReleaseGroupWriter();
-        releaseGroupWriter.write(metadata, releaseGroupResults);
-
         LabelWriter labelWriter = new LabelWriter();
-        labelWriter.write(metadata, labelResults);
-
         RecordingWriter recordingWriter = new RecordingWriter();
-        recordingWriter.write(metadata, recordingResults);
+        WorkWriter workWriter = new WorkWriter();
 
-        WorkWriter workWriter = new WorkWriter();
-        workWriter.write(metadata, workResults);
+        //Now use the correct writer to write the result
+        for(Result result:allResults)
+        {
+            switch(result.getResourceType())
+            {
+                case ARTIST:
+                    artistWriter.write(entityList.getArtistAndReleaseAndReleaseGroup(), result);
+                    break;
+
+                case LABEL:
+                    labelWriter.write(entityList.getArtistAndReleaseAndReleaseGroup(), result);
+                    break;
+
+                case RELEASE:
+                    releaseWriter.write(entityList.getArtistAndReleaseAndReleaseGroup(), result);
+                    break;
+
+                case RELEASE_GROUP:
+                    releaseGroupWriter.write(entityList.getArtistAndReleaseAndReleaseGroup(), result);
+                    break;
+
+                case RECORDING:
+                    recordingWriter.write(entityList.getArtistAndReleaseAndReleaseGroup(), result);
+                    break;
+
+                case WORK:
+                    workWriter.write(entityList.getArtistAndReleaseAndReleaseGroup(), result);
+                    break;
+
+            }
+        }
+
+        //Then write total matches
+        int totalHits=0;
+        int offset= resultsList.get(0).getOffset();
+        for(Results next:resultsList)
+        {
+            totalHits+= next.getTotalHits();
+        }
+        entityList.setCount(BigInteger.valueOf(totalHits));
+        entityList.setOffset(BigInteger.valueOf(offset));
+
         return metadata;
     }
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AnnotationWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AnnotationWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AnnotationWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -51,18 +51,20 @@
         AnnotationList annotationList = of.createAnnotationList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Annotation annotation= of.createAnnotation();
             annotation.setName(doc.get(AnnotationIndexField.NAME));
             annotation.setText(doc.get(AnnotationIndexField.TEXT));
             annotation.setType(doc.get(AnnotationIndexField.TYPE));
             annotation.setEntity(doc.get(AnnotationIndexField.ENTITY));
-            annotation.setScore(calculateNormalizedScore(result, results.maxScore));
+
+            result.setNormalizedScore(results.getMaxScore());
+            annotation.setScore(String.valueOf(result.getNormalizedScore()));
             annotationList.getAnnotation().add(annotation);
 
         }
-        annotationList.setCount(BigInteger.valueOf(results.totalHits));
-        annotationList.setOffset(BigInteger.valueOf(results.offset));
+        annotationList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        annotationList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setAnnotationList(annotationList);
     }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ArtistWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ArtistWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ArtistWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -37,108 +37,142 @@
 
 import java.io.IOException;
 import java.math.BigInteger;
+import java.util.List;
 import java.util.Locale;
 
 
-public class ArtistWriter extends ResultsWriter {
+public class ArtistWriter extends ResultsWriter
+{
 
-    public void write(Metadata metadata, Results results) throws IOException {
+    public void write(Metadata metadata, Results results) throws IOException
+    {
         ObjectFactory of = new ObjectFactory();
         ArtistList artistList = of.createArtistList();
 
-        for (Result result : results.results) {
-            MbDocument doc = result.doc;
-            Artist artist = of.createArtist();
+        for(Result result:results.results)
+        {
+            result.setNormalizedScore(results.getMaxScore());
+        }
+        write(artistList.getArtist(), results);
 
-            artist.setId(doc.get(ArtistIndexField.ARTIST_ID));
-            artist.setScore(calculateNormalizedScore(result, results.maxScore));
+        artistList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        artistList.setOffset(BigInteger.valueOf(results.getOffset()));
+        metadata.setArtistList(artistList);
+    }
 
-            String artype = doc.get(ArtistIndexField.TYPE);
-            if (isNotUnknown(artype)) {
-                artist.setType(artype);
-            }
 
-            String gender = doc.get(ArtistIndexField.GENDER);
-            if (isNotUnknown(gender)) {
-                artist.setGender(gender);
-            }
+    public void write(List list, Results results) throws IOException
+    {
+        for (Result result : results.results)
+        {
+            write(list, result);
+        }
+    }
 
-            String country = doc.get(ArtistIndexField.COUNTRY);
-            if (isNotUnknown(country)) {
-                artist.setCountry(country.toUpperCase(Locale.US));
+    public void write(List list, Result result) throws IOException
+    {
+        ObjectFactory of = new ObjectFactory();
 
-            }
+        MbDocument doc = result.getDoc();
+        Artist artist = of.createArtist();
 
-            String name = doc.get(ArtistIndexField.ARTIST);
-            if (name != null) {
-                artist.setName(name);
-            }
+        artist.setId(doc.get(ArtistIndexField.ARTIST_ID));
+        artist.setScore(String.valueOf(result.getNormalizedScore()));
 
-            String[] ipiCodes = doc.getValues(ArtistIndexField.IPI);
-            if (ipiCodes.length > 0) {
-                IpiList ipiList = of.createIpiList();
-                for (int i = 0; i < ipiCodes.length; i++) {
-                    ipiList.getIpi().add(ipiCodes[i]);
-                }
-                artist.setIpiList(ipiList);
-            }
-            
-            String sortname = doc.get(ArtistIndexField.SORTNAME);
-            if (sortname != null) {
-                artist.setSortName(sortname);
+        String artype = doc.get(ArtistIndexField.TYPE);
+        if (isNotUnknown(artype))
+        {
+            artist.setType(artype);
+        }
 
-            }
+        String gender = doc.get(ArtistIndexField.GENDER);
+        if (isNotUnknown(gender))
+        {
+            artist.setGender(gender);
+        }
 
-            String begin = doc.get(ArtistIndexField.BEGIN);
-            String end = doc.get(ArtistIndexField.END);
-            String ended = doc.get(ArtistIndexField.ENDED);
+        String country = doc.get(ArtistIndexField.COUNTRY);
+        if (isNotUnknown(country))
+        {
+            artist.setCountry(country.toUpperCase(Locale.US));
 
-            LifeSpan lifespan = of.createLifeSpan();
-            artist.setLifeSpan(lifespan);
+        }
 
-            if (begin != null) {
-                lifespan.setBegin(begin);
-            }
+        String name = doc.get(ArtistIndexField.ARTIST);
+        if (name != null)
+        {
+            artist.setName(name);
+        }
 
-            if (end != null) {
-                lifespan.setEnd(end);
+        String[] ipiCodes = doc.getValues(ArtistIndexField.IPI);
+        if (ipiCodes.length > 0)
+        {
+            IpiList ipiList = of.createIpiList();
+            for (int i = 0; i < ipiCodes.length; i++)
+            {
+                ipiList.getIpi().add(ipiCodes[i]);
             }
-            lifespan.setEnded(ended);
+            artist.setIpiList(ipiList);
+        }
 
-            String comment = doc.get(ArtistIndexField.COMMENT);
-            if (isNotNoValue(comment)) {
-                artist.setDisambiguation(comment);
-            }
+        String sortname = doc.get(ArtistIndexField.SORTNAME);
+        if (sortname != null)
+        {
+            artist.setSortName(sortname);
 
-            String[] aliases = doc.getValues(ArtistIndexField.ALIAS);
-            if (aliases.length > 0) {
-                AliasList aliasList = of.createAliasList();
-                for (int i = 0; i < aliases.length; i++) {
-                    Alias alias = of.createAlias();
-                    alias.setContent(aliases[i]);
-                    aliasList.getAlias().add(alias);
-                }
-                artist.setAliasList(aliasList);
-            }
+        }
 
-            String[] tags = doc.getValues(ArtistIndexField.TAG);
-            String[] tagCounts = doc.getValues(ArtistIndexField.TAGCOUNT);
-            if (tags.length > 0) {
-                TagList tagList = of.createTagList();
-                for (int i = 0; i < tags.length; i++) {
-                    Tag tag = of.createTag();
-                    tag.setName(tags[i]);
-                    tag.setCount(new BigInteger(tagCounts[i]));
-                    tagList.getTag().add(tag);
-                }
-                artist.setTagList(tagList);
-            }
+        String begin = doc.get(ArtistIndexField.BEGIN);
+        String end = doc.get(ArtistIndexField.END);
+        String ended = doc.get(ArtistIndexField.ENDED);
 
-            artistList.getArtist().add(artist);
+        LifeSpan lifespan = of.createLifeSpan();
+        artist.setLifeSpan(lifespan);
 
+        if (begin != null)
+        {
+            lifespan.setBegin(begin);
         }
-        artistList.setCount(BigInteger.valueOf(results.totalHits));
-        artistList.setOffset(BigInteger.valueOf(results.offset));
-        metadata.setArtistList(artistList);
+
+        if (end != null)
+        {
+            lifespan.setEnd(end);
+        }
+        lifespan.setEnded(ended);
+
+        String comment = doc.get(ArtistIndexField.COMMENT);
+        if (isNotNoValue(comment))
+        {
+            artist.setDisambiguation(comment);
+        }
+
+        String[] aliases = doc.getValues(ArtistIndexField.ALIAS);
+        if (aliases.length > 0)
+        {
+            AliasList aliasList = of.createAliasList();
+            for (int i = 0; i < aliases.length; i++)
+            {
+                Alias alias = of.createAlias();
+                alias.setContent(aliases[i]);
+                aliasList.getAlias().add(alias);
+            }
+            artist.setAliasList(aliasList);
+        }
+
+        String[] tags = doc.getValues(ArtistIndexField.TAG);
+        String[] tagCounts = doc.getValues(ArtistIndexField.TAGCOUNT);
+        if (tags.length > 0)
+        {
+            TagList tagList = of.createTagList();
+            for (int i = 0; i < tags.length; i++)
+            {
+                Tag tag = of.createTag();
+                tag.setName(tags[i]);
+                tag.setCount(new BigInteger(tagCounts[i]));
+                tagList.getTag().add(tag);
+            }
+            artist.setTagList(tagList);
+        }
+        list.add(artist);
     }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/CDStubWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/CDStubWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/CDStubWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -50,7 +50,7 @@
         CdstubList cdstubList = of.createCdstubList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Cdstub cdstub = of.createCdstub();
 
             String artist = doc.get(CDStubIndexField.ARTIST);
@@ -104,12 +104,12 @@
             }
 
 
-            cdstub.setScore(calculateNormalizedScore(result, results.maxScore));
+            result.setNormalizedScore(results.getMaxScore());
+            cdstub.setScore(String.valueOf(result.getNormalizedScore()));
             cdstubList.getCdstub().add(cdstub);
-
         }
-        cdstubList.setCount(BigInteger.valueOf(results.totalHits));
-        cdstubList.setOffset(BigInteger.valueOf(results.offset));
+        cdstubList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        cdstubList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setCdstubList(cdstubList);
     }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/FreeDBWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/FreeDBWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/FreeDBWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -50,7 +50,7 @@
         FreedbDiscList freeDBList = of.createFreedbDiscList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             FreedbDisc freeDB = of.createFreedbDisc();
 
             freeDB.setArtist(doc.get(FreeDBIndexField.ARTIST));
@@ -58,16 +58,17 @@
             freeDB.setId(doc.get(FreeDBIndexField.DISCID));
             freeDB.setCategory(doc.get(FreeDBIndexField.CATEGORY));
             freeDB.setYear(doc.get(FreeDBIndexField.YEAR));
-            freeDB.setScore(calculateNormalizedScore(result, results.maxScore));
 
+            result.setNormalizedScore(results.getMaxScore());
+            freeDB.setScore(String.valueOf(result.getNormalizedScore()));
             org.musicbrainz.mmd2.FreedbDisc.TrackList trackList = of.createFreedbDiscTrackList();
             trackList.setCount(new BigInteger(doc.get(FreeDBIndexField.TRACKS)));
             freeDB.setTrackList(trackList);
             freeDBList.getFreedbDisc().add(freeDB);
 
         }
-        freeDBList.setCount(BigInteger.valueOf(results.totalHits));
-        freeDBList.setOffset(BigInteger.valueOf(results.offset));
+        freeDBList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        freeDBList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setFreedbDiscList(freeDBList);
     }
 

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -29,35 +29,59 @@
 package org.musicbrainz.search.servlet.mmd2;
 
 
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.NumericUtils;
 import org.musicbrainz.mmd2.*;
 import org.musicbrainz.search.MbDocument;
-import org.musicbrainz.search.index.ArtistIndexField;
 import org.musicbrainz.search.index.LabelIndexField;
 import org.musicbrainz.search.servlet.Result;
 import org.musicbrainz.search.servlet.Results;
 
 import java.io.IOException;
 import java.math.BigInteger;
+import java.util.List;
 import java.util.Locale;
 
 public class LabelWriter extends ResultsWriter {
 
-    public void write(Metadata metadata, Results results) throws IOException {
+    public void write(EntityList list, Results results) throws IOException
+    {
+        write(list.getArtistAndReleaseAndReleaseGroup(), results);
+    }
 
+    public void write(Metadata metadata, Results results) throws IOException
+    {
         ObjectFactory of = new ObjectFactory();
         LabelList labelList = of.createLabelList();
 
-        for (Result result : results.results) {
-            MbDocument doc = result.doc;
+        for(Result result:results.results)
+        {
+            result.setNormalizedScore(results.getMaxScore());
+        }
+        write(labelList.getLabel(), results);
+
+        labelList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        labelList.setOffset(BigInteger.valueOf(results.getOffset()));
+        metadata.setLabelList(labelList);
+    }
+
+    public void write(List list, Results results) throws IOException
+    {
+        for (Result result : results.results)
+        {
+            write(list, result);
+        }
+    }
+
+    public void write(List list, Result result) throws IOException
+    {
+        ObjectFactory of = new ObjectFactory();
+            MbDocument doc = result.getDoc();
             Label label = of.createLabel();
             label.setId(doc.get(LabelIndexField.LABEL_ID));
             String type = doc.get(LabelIndexField.TYPE);
             if (isNotUnknown(type)){
                 label.setType(type);
             }
-            label.setScore(calculateNormalizedScore(result, results.maxScore));
+            label.setScore(String.valueOf(result.getNormalizedScore()));
             String name = doc.get(LabelIndexField.LABEL);
             if (name != null) {
                 label.setName(name);
@@ -134,13 +158,7 @@
                 }
                 label.setTagList(tagList);
             }
+            list.add(label);
 
-            
-            labelList.getLabel().add(label);
-
-        }
-        labelList.setCount(BigInteger.valueOf(results.totalHits));
-        labelList.setOffset(BigInteger.valueOf(results.offset));
-        metadata.setLabelList(labelList);
     }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -40,6 +40,7 @@
 
 import java.io.IOException;
 import java.math.BigInteger;
+import java.util.List;
 import java.util.Locale;
 
 public class RecordingWriter extends ResultsWriter {
@@ -65,17 +66,40 @@
         return vaCredit;
     }
 
-    public void write(Metadata metadata, Results results) throws IOException {
 
+    public void write(Metadata metadata, Results results) throws IOException
+    {
         ObjectFactory of = new ObjectFactory();
         RecordingList recordingList = of.createRecordingList();
 
-        for (Result result : results.results) {
-            MbDocument doc = result.doc;
+        for(Result result:results.results)
+        {
+            result.setNormalizedScore(results.getMaxScore());
+        }
+        write(recordingList.getRecording(), results);
+
+        recordingList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        recordingList.setOffset(BigInteger.valueOf(results.getOffset()));
+        metadata.setRecordingList(recordingList);
+    }
+    public void write(List list, Results results) throws IOException
+    {
+        for (Result result : results.results)
+        {
+            write(list, result);
+        }
+    }
+
+    public void write(List list, Result result) throws IOException
+    {
+        ObjectFactory of = new ObjectFactory();
+        RecordingList recordingList = of.createRecordingList();
+
+            MbDocument doc = result.getDoc();
             Recording recording = of.createRecording();
 
             recording.setId(doc.get(RecordingIndexField.RECORDING_ID));
-            recording.setScore(calculateNormalizedScore(result, results.maxScore));
+            recording.setScore(String.valueOf(result.getNormalizedScore()));
             String name = doc.get(RecordingIndexField.RECORDING_OUTPUT);
 
             if (name != null) {
@@ -234,10 +258,6 @@
                 recording.setTagList(tagList);
             }
 
-            recordingList.getRecording().add(recording);
-        }
-        recordingList.setCount(BigInteger.valueOf(results.totalHits));
-        recordingList.setOffset(BigInteger.valueOf(results.offset));
-        metadata.setRecordingList(recordingList);
+            list.add(recording);
     }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseGroupWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseGroupWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseGroupWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -37,19 +37,44 @@
 
 import java.io.IOException;
 import java.math.BigInteger;
+import java.util.List;
 
 public class ReleaseGroupWriter extends ResultsWriter {
 
-    public void write(Metadata metadata, Results results) throws IOException {
 
+    public void write(Metadata metadata, Results results) throws IOException
+    {
         ObjectFactory of = new ObjectFactory();
         ReleaseGroupList releaseGroupList = of.createReleaseGroupList();
 
-        for (Result result : results.results) {
-            MbDocument doc = result.doc;
+        for(Result result:results.results)
+        {
+            result.setNormalizedScore(results.getMaxScore());
+        }
+        write(releaseGroupList.getReleaseGroup(), results);
+
+        releaseGroupList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        releaseGroupList.setOffset(BigInteger.valueOf(results.getOffset()));
+        metadata.setReleaseGroupList(releaseGroupList);
+    }
+
+    public void write(List list, Results results) throws IOException
+    {
+        for (Result result : results.results)
+        {
+            write(list, result);
+        }
+    }
+
+    public void write(List list, Result result) throws IOException
+    {
+        ObjectFactory of = new ObjectFactory();
+        ReleaseGroupList releaseGroupList = of.createReleaseGroupList();
+
+            MbDocument doc = result.getDoc();
             ReleaseGroup releaseGroup = of.createReleaseGroup();
             releaseGroup.setId(doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
-            releaseGroup.setScore(calculateNormalizedScore(result, results.maxScore));
+            releaseGroup.setScore(String.valueOf(result.getNormalizedScore()));
             String name = doc.get(ReleaseGroupIndexField.RELEASEGROUP);
             if (name != null) {
                 releaseGroup.setTitle(name);
@@ -114,9 +139,6 @@
                 }
                 releaseGroup.setTagList(tagList);
             }
+            list.add(releaseGroup);
         }
-        releaseGroupList.setCount(BigInteger.valueOf(results.totalHits));
-        releaseGroupList.setOffset(BigInteger.valueOf(results.offset));
-        metadata.setReleaseGroupList(releaseGroupList);
-    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ReleaseWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -41,22 +41,45 @@
 
 import java.io.IOException;
 import java.math.BigInteger;
+import java.util.List;
 import java.util.Locale;
 
 
 public class ReleaseWriter extends ResultsWriter {
 
 
-
-    public void write(Metadata metadata, Results results) throws IOException {
+    public void write(Metadata metadata, Results results) throws IOException
+    {
         ObjectFactory of = new ObjectFactory();
         ReleaseList releaseList = of.createReleaseList();
 
-        for (Result result : results.results) {
-            MbDocument doc = result.doc;
+        for(Result result:results.results)
+        {
+            result.setNormalizedScore(results.getMaxScore());
+        }
+        write(releaseList.getRelease(), results);
+
+        releaseList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        releaseList.setOffset(BigInteger.valueOf(results.getOffset()));
+        metadata.setReleaseList(releaseList);
+    }
+
+    public void write(List list, Results results) throws IOException
+    {
+        for (Result result : results.results)
+        {
+            write(list, result);
+        }
+    }
+
+    public void write(List list, Result result) throws IOException
+    {
+        ObjectFactory of = new ObjectFactory();
+
+            MbDocument doc = result.getDoc();
             Release release = of.createRelease();
             release.setId(doc.get(ReleaseIndexField.RELEASE_ID));
-            release.setScore(calculateNormalizedScore(result, results.maxScore));
+            release.setScore(String.valueOf(result.getNormalizedScore()));
 
             String name = doc.get(ReleaseIndexField.RELEASE);
             if (name != null) {
@@ -214,10 +237,6 @@
                 release.setTagList(tagList);
             }
 
-            releaseList.getRelease().add(release);
+            list.add(release);
         }
-        releaseList.setCount(BigInteger.valueOf(results.totalHits));
-        releaseList.setOffset(BigInteger.valueOf(results.offset));
-        metadata.setReleaseList(releaseList);
-    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/TagWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/TagWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/TagWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -47,14 +47,15 @@
         TagList  tagList = of.createTagList();
 
         for (Result result : results.results) {
-            MbDocument doc = result.doc;
+            MbDocument doc = result.getDoc();
             Tag tag = of.createTag();
             tag.setName(doc.get(TagIndexField.TAG));;
-            tag.setScore(calculateNormalizedScore(result, results.maxScore));
+            result.setNormalizedScore(results.getMaxScore());
+            tag.setScore(String.valueOf(result.getNormalizedScore()));
             tagList.getTag().add(tag);
         }
-        tagList.setCount(BigInteger.valueOf(results.totalHits));
-        tagList.setOffset(BigInteger.valueOf(results.offset));
+        tagList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        tagList.setOffset(BigInteger.valueOf(results.getOffset()));
         metadata.setTagList(tagList);
     }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -37,19 +37,46 @@
 
 import java.io.IOException;
 import java.math.BigInteger;
+import java.util.List;
 
 public class WorkWriter extends ResultsWriter {
 
-    public void write(Metadata metadata, Results results) throws IOException {
 
+
+    public void write(Metadata metadata, Results results) throws IOException
+    {
         ObjectFactory of = new ObjectFactory();
         WorkList workList = of.createWorkList();
 
-        for (Result result : results.results) {
-            MbDocument doc = result.doc;
+        for(Result result:results.results)
+        {
+            result.setNormalizedScore(results.getMaxScore());
+        }
+        write(workList.getWork(), results);
+
+        workList.setCount(BigInteger.valueOf(results.getTotalHits()));
+        workList.setOffset(BigInteger.valueOf(results.getOffset()));
+        metadata.setWorkList(workList);
+    }
+
+    public void write(List list, Results results) throws IOException
+    {
+        for (Result result : results.results)
+        {
+            write(list, result);
+        }
+    }
+
+    public void write(List list, Result result) throws IOException
+    {
+
+        ObjectFactory of = new ObjectFactory();
+        WorkList workList = of.createWorkList();
+
+            MbDocument doc = result.getDoc();
             Work work = of.createWork();
             work.setId(doc.get(WorkIndexField.WORK_ID));
-            work.setScore(calculateNormalizedScore(result, results.maxScore));
+            work.setScore(String.valueOf(result.getNormalizedScore()));
 
             String name = doc.get(WorkIndexField.WORK);
             if (name != null) {
@@ -114,12 +141,6 @@
                }
                work.setTagList(tagList);
             }
-
-
-            workList.getWork().add(work);
+            list.add(work);
         }
-        workList.setCount(BigInteger.valueOf(results.totalHits));
-        workList.setOffset(BigInteger.valueOf(results.offset));
-        metadata.setWorkList(workList);
-    }
 }
\ No newline at end of file

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindAnnotationTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindAnnotationTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindAnnotationTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -12,7 +12,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.search.LuceneVersion;
@@ -116,87 +115,87 @@
   @Test
   public void testSearchByTypeRelease() throws Exception {
     Results res = ss.search("type:release", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByTypeArtist() throws Exception {
     Results res = ss.search("type:artist", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDismax1() throws Exception {
     Results res = sd.search("Pieds nus", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDismax2() throws Exception {
     Results res = sd.search("0828768226629", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByTypeReleaseGroup() throws Exception {
     Results res = ss.search("type:release-group", 0, 10);
     assertEquals("3 Songs", res.results.get(0).getDoc().get(AnnotationIndexField.NAME));
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByTypeRecording() throws Exception {
     Results res = ss.search("type:recording", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByTypeWork() throws Exception {
     Results res = ss.search("type:work", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByName() throws Exception {
     Results res = ss.search("name:Pieds nus sur la braise", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByNameNoMatch() throws Exception {
     Results res = ss.search("name:fred", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
   }
 
   @Test
   public void testSearchByEntity() throws Exception {
     Results res = ss.search("entity:bdb24cb5-404b-4f60-bba4-7b730325ae47", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByEntitydNoMatch() throws Exception {
     Results res = ss.search("entity:bdb24cb5-404b-4f60-bba4-000000000000", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
   }
 
   @Test
   public void testSearchByText() throws Exception {
     Results res = ss.search("text:DiscID", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByTextNoMatch() throws Exception {
     Results res = ss.search("text:fred", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDefaultField() throws Exception {
 
     Results res = ss.search("DiscID", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   /**

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindArtistTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindArtistTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindArtistTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -14,7 +14,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.search.LuceneVersion;
@@ -110,9 +109,9 @@
   @Test
   public void testFindArtistById() throws Exception {
     Results res = ss.search("arid:\"4302e264-1cf0-4d1f-aca7-2a6f89e34b36\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
     assertEquals("Farming Incident", doc.get(ArtistIndexField.ARTIST));
     assertEquals("1999-04", doc.get(ArtistIndexField.BEGIN));
@@ -126,45 +125,45 @@
   @Test
   public void testFindArtistByName() throws Exception {
     Results res = ss.search("artist:\"Farming Incident\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistDismaxSingleTerm() throws Exception {
     Results res = sd.search("Farming", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistDismaxPhrase() throws Exception {
     Results res = sd.search("Farming Incident", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistDismaxFuzzy() throws Exception {
     Results res = sd.search("Farmin", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistBySortName() throws Exception {
     Results res = ss.search("sortname:\"Incident, Farming\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
@@ -172,45 +171,45 @@
   @Test
   public void testFindArtistByType() throws Exception {
     Results res = ss.search("type:\"group\"", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistByIpi() throws Exception {
     Results res = ss.search("ipi:1001", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistByNumericType() throws Exception {
     Results res = ss.search("type:2", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistByBeginDate() throws Exception {
     Results res = ss.search("begin:\"1999-04\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistByEnded() throws Exception {
     Results res = ss.search("ended:\"true\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
@@ -218,21 +217,21 @@
   @Test
   public void testFindArtistByEndDate() throws Exception {
     Results res = ss.search("end:\"1999-04\"", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
   }
 
   @Test
   public void testFindArtistByTypePerson() throws Exception {
     Results res = ss.search("type:\"person\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testFindArtistByAlias() throws Exception {
     Results res = ss.search("alias:\"Echo And The Bunnymen\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ccd4879c-5e88-4385-b131-bf65296bf245", doc.get(ArtistIndexField.ARTIST_ID));
 
   }
@@ -240,9 +239,9 @@
   @Test
   public void testFindArtistByCountry() throws Exception {
     Results res = ss.search("country:\"af\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
     assertEquals("Farming Incident", doc.get(ArtistIndexField.ARTIST));
   }
@@ -250,18 +249,18 @@
   @Test
   public void testFindArtistWithNoCountry() throws Exception {
     Results res = ss.search("country:unknown", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ccd4879c-5e88-4385-b131-bf65296bf245", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
   @Test
   public void testFindArtistWithNoGender() throws Exception {
     Results res = ss.search("gender:unknown", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("dde4879c-5e88-4385-b131-bf65296bf245", doc.get(ArtistIndexField.ARTIST_ID));
   }
 
@@ -269,9 +268,9 @@
   @Test
   public void testFindArtistByCountryUppercase() throws Exception {
     Results res = ss.search("country:\"AF\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
     assertEquals("Farming Incident", doc.get(ArtistIndexField.ARTIST));
   }
@@ -279,9 +278,9 @@
   @Test
   public void testFindArtistByGenderLowercase() throws Exception {
     Results res = ss.search("gender:\"male\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
     assertEquals("Farming Incident", doc.get(ArtistIndexField.ARTIST));
   }
@@ -289,9 +288,9 @@
   @Test
   public void testFindArtistByGenderTitlecase() throws Exception {
     Results res = ss.search("gender:\"Male\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
     assertEquals("Farming Incident", doc.get(ArtistIndexField.ARTIST));
   }
@@ -299,9 +298,9 @@
   @Test
   public void testFindArtistByTag() throws Exception {
     Results res = ss.search("tag:Thrash", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
     assertEquals("Farming Incident", doc.get(ArtistIndexField.ARTIST));
   }
@@ -312,9 +311,9 @@
     //Matches on name field without it being specified
     {
       Results res = ss.search("\"Echo & The Bunnymen\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("ccd4879c-5e88-4385-b131-bf65296bf245", doc.get(ArtistIndexField.ARTIST_ID));
       assertEquals("Echo & The Bunnymen", doc.get(ArtistIndexField.ARTIST));
       assertEquals("1978", doc.get(ArtistIndexField.BEGIN));
@@ -325,9 +324,9 @@
     //and alias field  field without it being specified
     {
       Results res = ss.search("\"Echo & The Bunnyman\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("ccd4879c-5e88-4385-b131-bf65296bf245", doc.get(ArtistIndexField.ARTIST_ID));
       assertEquals("Echo & The Bunnymen", doc.get(ArtistIndexField.ARTIST));
       assertEquals("1978", doc.get(ArtistIndexField.BEGIN));
@@ -338,7 +337,7 @@
     //but doesn't search default fields if a field is specified
     {
       Results res = ss.search("type:\"Echo & The Bunnyman\"", 0, 10);
-      assertEquals(0, res.totalHits);
+      assertEquals(0, res.getTotalHits());
 
     }
   }
@@ -346,9 +345,9 @@
   @Test
   public void testFindArtistByExcalamation() throws Exception {
     Results res = ss.search("Farming\\!", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4302e264-1cf0-4d1f-aca7-2a6f89e34b36", doc.get(ArtistIndexField.ARTIST_ID));
   }
 

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindCDStubTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindCDStubTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindCDStubTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -12,7 +12,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.search.LuceneVersion;
@@ -74,61 +73,61 @@
   @Test
   public void testSearchByArtist() throws Exception {
     Results res = ss.search("artist:\"Doo Doo\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDismax1() throws Exception {
     Results res = sd.search("First", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDismax2() throws Exception {
     Results res = sd.search("Doo Doo", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDismax3() throws Exception {
     Results res = sd.search("837101029193", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDismax4() throws Exception {
     Results res = sd.search("CD Baby", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByTitle() throws Exception {
     Results res = ss.search("title:\"Doo Doo First\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByBarcode() throws Exception {
     Results res = ss.search("barcode:\"837101029193\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByComment() throws Exception {
     Results res = ss.search("comment:\"CD Baby id:vozzolo\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByDiscId() throws Exception {
     Results res = ss.search("discid:qA87dKURKperVfmckD5b_xo8BO8-", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testSearchByNumTracks() throws Exception {
     Results res = ss.search("tracks:2", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
 

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindFreeDBTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindFreeDBTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindFreeDBTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -53,9 +53,9 @@
   @Test
   public void testSearchFreeDBByArtist() throws Exception {
     Results res = ss.search("artist:\"Ska-P\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Ska-P", doc.get(FreeDBIndexField.ARTIST));
     assertEquals("L\u00e1grimas & Gozos", doc.get(FreeDBIndexField.TITLE));
     assertEquals("folk", doc.get(FreeDBIndexField.CATEGORY));
@@ -67,9 +67,9 @@
   @Test
   public void testSearchFreeDBByTitle() throws Exception {
     Results res = ss.search("title:\"L\u00e1grimas & Gozos\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Ska-P", doc.get(FreeDBIndexField.ARTIST));
     assertEquals("L\u00e1grimas & Gozos", doc.get(FreeDBIndexField.TITLE));
     assertEquals("folk", doc.get(FreeDBIndexField.CATEGORY));
@@ -81,9 +81,9 @@
   @Test
   public void testSearchFreeDBByDiscId() throws Exception {
     Results res = ss.search("discid:\"c20c4b0d\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Ska-P", doc.get(FreeDBIndexField.ARTIST));
     assertEquals("L\u00e1grimas & Gozos", doc.get(FreeDBIndexField.TITLE));
     assertEquals("folk", doc.get(FreeDBIndexField.CATEGORY));
@@ -95,9 +95,9 @@
   @Test
   public void testSearchFreeDBByYear() throws Exception {
     Results res = ss.search("year:\"2008\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Ska-P", doc.get(FreeDBIndexField.ARTIST));
     assertEquals("L\u00e1grimas & Gozos", doc.get(FreeDBIndexField.TITLE));
     assertEquals("folk", doc.get(FreeDBIndexField.CATEGORY));
@@ -112,9 +112,9 @@
     //by artist
     {
       Results res = ss.search("\"Ska-P\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("Ska-P", doc.get(FreeDBIndexField.ARTIST));
       assertEquals("L\u00e1grimas & Gozos", doc.get(FreeDBIndexField.TITLE));
       assertEquals("folk", doc.get(FreeDBIndexField.CATEGORY));
@@ -126,9 +126,9 @@
     //by title
     {
       Results res = ss.search("\"L\u00e1grimas & Gozos\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("Ska-P", doc.get(FreeDBIndexField.ARTIST));
       assertEquals("L\u00e1grimas & Gozos", doc.get(FreeDBIndexField.TITLE));
       assertEquals("folk", doc.get(FreeDBIndexField.CATEGORY));

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -14,7 +14,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.search.LuceneVersion;
@@ -114,9 +113,9 @@
   @Test
   public void testFindLabelById() throws Exception {
     Results res = ss.search("laid:\"ff571ff4-04cb-4b9c-8a1c-354c330f863c\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
     assertEquals("1993", doc.get(LabelIndexField.BEGIN));
@@ -130,9 +129,9 @@
   @Test
   public void testFindLabelByName() throws Exception {
     Results res = ss.search("label:\"Jockey Slut\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -140,9 +139,9 @@
   @Test
   public void testFindLabelByDismax1() throws Exception {
     Results res = sd.search("Jockey Slut", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -150,9 +149,9 @@
   @Test
   public void testFindLabelByDismax2() throws Exception {
     Results res = sd.search("Jockey", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -160,9 +159,9 @@
     @Test
     public void testFindLabelByDismax3() throws Exception {
         Results res = sd.search("1234", 0, 10);
-        assertEquals(1, res.totalHits);
+        assertEquals(1, res.getTotalHits());
         Result result = res.results.get(0);
-        MbDocument doc = result.doc;
+        MbDocument doc = result.getDoc();
         assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
         assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
     }
@@ -172,27 +171,27 @@
 
     {
       Results res = ss.search("\"Jockey Slut\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
       assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
     }
 
     {
       Results res = ss.search("\"Slut Jockey\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
       assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
     }
 
     {
       Results res = ss.search("\"Jockeys\"", 0, 10);
-      assertEquals(1, res.totalHits);
+      assertEquals(1, res.getTotalHits());
       Result result = res.results.get(0);
-      MbDocument doc = result.doc;
+      MbDocument doc = result.getDoc();
       assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
       assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
     }
@@ -201,9 +200,9 @@
   @Test
   public void testFindLabelByType() throws Exception {
     Results res = ss.search("type:\"production\"", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
 
     //(This will always come first because searcher sots by score and then docno, and this doc added first)
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
@@ -213,9 +212,9 @@
   @Test
   public void testFindLabelByIpi() throws Exception {
     Results res = ss.search("ipi:1001", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
 
     //(This will always come first because searcher sots by score and then docno, and this doc added first)
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
@@ -225,9 +224,9 @@
   @Test
   public void testFindLabelByNumericType() throws Exception {
     Results res = ss.search("type:3", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
 
     //(This will always come first because searcher sots by score and then docno, and this doc added first)
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
@@ -237,9 +236,9 @@
   @Test
   public void testFindLabelBySortname() throws Exception {
     Results res = ss.search("sortname:\"Slut, Jockey\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -247,9 +246,9 @@
   @Test
   public void testFindLabelByCountry() throws Exception {
     Results res = ss.search("country:\"gb\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -257,18 +256,18 @@
   @Test
   public void testFindLabelByUnknownCountry() throws Exception {
     Results res = ss.search("country:\"unknown\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
   }
 
   @Test
   public void testFindLabelByCountryUpercase() throws Exception {
     Results res = ss.search("country:\"GB\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -276,9 +275,9 @@
   @Test
   public void testFindLabelByCode() throws Exception {
     Results res = ss.search("code:5807", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("4AD", doc.get(LabelIndexField.LABEL));
   }
@@ -286,9 +285,9 @@
   @Test
   public void testFindLabelByCode2() throws Exception {
     Results res = ss.search("code:05807", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("4AD", doc.get(LabelIndexField.LABEL));
   }
@@ -296,9 +295,9 @@
   @Test
   public void testFindLabelByCode3() throws Exception {
     Results res = ss.search("code:005807", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("4AD", doc.get(LabelIndexField.LABEL));
   }
@@ -307,9 +306,9 @@
   public void testFindLabelByCodeRange() throws Exception {
       try {
     Results res = ss.search("code:[5806 TO 5807]", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("4AD", doc.get(LabelIndexField.LABEL));
       }
@@ -322,9 +321,9 @@
   @Test
   public void testFindLabelByZeroedCode() throws Exception {
     Results res = ss.search("code:\"05807\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("4AD", doc.get(LabelIndexField.LABEL));
   }
@@ -332,9 +331,9 @@
   @Test
   public void testFindLabelByTag() throws Exception {
     Results res = ss.search("tag:dance", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
     assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
   }
@@ -342,16 +341,16 @@
   @Test
   public void testFindLabelByEnded() throws Exception {
     Results res = ss.search("ended:\"true\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
   }
 
 
   public void testIssue66() throws Exception {
     Results res = ss.search("dark", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     ResultsWriter writer = new LabelMmd1XmlWriter();
     StringWriter sw = new StringWriter();
     PrintWriter pr = new PrintWriter(sw);

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -138,9 +138,9 @@
   @Test
   public void testFindRecordingByV1TrackField() throws Exception {
     Results res = ss.search("track:\"Gravitational Lenz\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals("Our Glorious 5 Year Plan", doc.get(RecordingIndexField.RELEASE));
@@ -153,9 +153,9 @@
   @Test
   public void testFindRecording() throws Exception {
     Results res = ss.search("recording:\"Gravitational Lenz\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals("Our Glorious 5 Year Plan", doc.get(RecordingIndexField.RELEASE));
@@ -169,80 +169,80 @@
   @Test
   public void testFindRecordingDismax1() throws Exception {
     Results res = sd.search("Gravitational", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingDismax2() throws Exception {
     Results res = sd.search("Glorious", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingDismax3() throws Exception {
     Results res = sd.search("Farming Incident", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByV1TrackId() throws Exception {
     Results res = ss.search("trid:\"7ca7782b-a602-448b-b108-bb881a7be2d6\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingById() throws Exception {
     Results res = ss.search("rid:\"7ca7782b-a602-448b-b108-bb881a7be2d6\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByReleaseId() throws Exception {
     Results res = ss.search("reid:\"1d9e8ed6-3893-4d3b-aa7d-6cd79609e386\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByDemo() throws Exception {
     Results res = ss.search("comment:\"demo\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("demo", doc.get(RecordingIndexField.COMMENT));
   }
 
   @Test
   public void testFindRecordingByArtistId() throws Exception {
     Results res = ss.search("arid:\"4302e264-1cf0-4d1f-aca7-2a6f89e34b36\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   public void testFindRecordingByArtistName() throws Exception {
     Results res = ss.search("artist:\"Farming Incident\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
@@ -250,141 +250,141 @@
   @Test
   public void testFindRecordingByTrackName() throws Exception {
     Results res = ss.search("recording:\"Gravitational Lens\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByReleaseType() throws Exception {
     Results res = ss.search("type:\"compilation\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByPrimaryReleaseType() throws Exception {
     Results res = ss.search("primarytype:\"album\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingBySecondaryReleaseType() throws Exception {
     Results res = ss.search("secondarytype:\"compilation\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByReleaseGroupId() throws Exception {
     Results res = ss.search("rgid:\"4444e264-1cf0-4d1f-aca7-2a6f89e34b36\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByReleaseCountry() throws Exception {
     Results res = ss.search("country:UK", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByReleaseFormat() throws Exception {
     Results res = ss.search("format:Vinyl", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByReleaseTypeNumeric() throws Exception {
     Results res = ss.search("type:\"4\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByNumberOfTracksOnMediumOnRelease() throws Exception {
     Results res = ss.search("tracks:10", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByNumberOfTracksOnRelease() throws Exception {
     Results res = ss.search("tracksrelease:10", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByDuration() throws Exception {
     Results res = ss.search("dur:234000", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByDuration2() throws Exception {
     Results res = ss.search("dur:234000", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByISRC() throws Exception {
     Results res = ss.search("isrc:123456789", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByNonNumericDuration() throws Exception {
     Results res = ss.search("dur:fred", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
   }
 
   @Test
   public void testFindRecordingByTag() throws Exception {
     Results res = ss.search("tag:indie", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
   }
 
   @Test
   public void testFindRecordingByDurationRange() throws Exception {
     Results res = ss.search("dur:[87 TO 240000]", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals(5, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(RecordingIndexField.TRACKNUM))));
@@ -395,9 +395,9 @@
   @Test
   public void testFindRecordingByQdur() throws Exception {
     Results res = ss.search("qdur:117", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals("Our Glorious 5 Year Plan", doc.get(RecordingIndexField.RELEASE));
@@ -409,9 +409,9 @@
   @Test
   public void testFindRecordingByTrackPosition() throws Exception {
     Results res = ss.search("tnum:5", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals(5, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(RecordingIndexField.TRACKNUM))));
@@ -422,9 +422,9 @@
   @Test
   public void testFindRecordingByTrackNumber() throws Exception {
     Results res = ss.search("number:A4", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals(5, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(RecordingIndexField.TRACKNUM))));
@@ -435,9 +435,9 @@
   @Test
   public void testFindRecordingByPosition() throws Exception {
     Results res = ss.search("position:1", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals(5, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(RecordingIndexField.TRACKNUM))));
@@ -448,9 +448,9 @@
   @Test
   public void testFindRecordingByReleaseStatus() throws Exception {
     Results res = ss.search("status:Official", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals(5, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(RecordingIndexField.TRACKNUM))));
@@ -461,9 +461,9 @@
   @Test
   public void testFindRecordingByReleaseDate() throws Exception {
     Results res = ss.search("date:1970-01-01", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals(5, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(RecordingIndexField.TRACKNUM))));
@@ -474,9 +474,9 @@
   @Test
   public void testFindRecordingByDefault() throws Exception {
     Results res = ss.search("\"Gravitational Lenz\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("7ca7782b-a602-448b-b108-bb881a7be2d6", doc.get(RecordingIndexField.RECORDING_ID));
     assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(RecordingIndexField.RELEASE_ID));
     assertEquals("Our Glorious 5 Year Plan", doc.get(RecordingIndexField.RELEASE));
@@ -488,13 +488,13 @@
   @Test
   public void testNumericRangeQuery() throws Exception {
     Results res = ss.search("tracks:[1 TO 10]", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testFindRecordingByPuid() throws Exception {
     Results res = ss.search("puid:1d9e8ed6-3893-4d3b-aa7d-72e79609e386", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
 

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseGroupTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseGroupTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseGroupTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -12,7 +12,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.mmd2.Artist;
@@ -135,9 +134,9 @@
   @Test
   public void testFindReleaseGroupById() throws Exception {
     Results res = ss.search("rgid:\"2c7d81da-8fc3-3157-99c1-e9195ac92c45\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("secret", doc.get(ReleaseGroupIndexField.RELEASE));
@@ -147,9 +146,9 @@
   @Test
   public void testFindReleaseGroupByName() throws Exception {
     Results res = ss.search("releasegroup:\"Nobody's Twisting Your Arm\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -158,9 +157,9 @@
   @Test
   public void testFindReleaseGroupByReleaseStatus() throws Exception {
     Results res = ss.search("status:official", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -168,9 +167,9 @@
   @Test
   public void testFindReleaseGroupByDismax1() throws Exception {
     Results res = sd.search("Twisting", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -179,9 +178,9 @@
   @Test
   public void testFindReleaseGroupByDismax2() throws Exception {
     Results res = sd.search("secret", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -190,9 +189,9 @@
   @Test
   public void testFindReleaseGroupByDismax3() throws Exception {
     Results res = sd.search("wedding", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -201,11 +200,11 @@
   @Test
   public void testFindReleaseGroupByRelease() throws Exception {
     Results res = ss.search("releasegroup:\"secret\"", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
     res = ss.search("release:secret", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -214,17 +213,17 @@
   @Test
   public void testFindReleaseByNumberofReleases() throws Exception {
     Results res = ss.search("releases:1", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testFindReleaseGroupByReleaseId() throws Exception {
     Results res = ss.search("releaseid:\"2c7d81da-8fc3-3157-99c1-e9195ac92c46\"", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
     res = ss.search("release:secret", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -233,9 +232,9 @@
   @Test
   public void testFindReleaseGroupByArtist() throws Exception {
     Results res = ss.search("artist:\"The Wedding Present\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -246,9 +245,9 @@
   @Test
   public void testFindReleaseGroupByType() throws Exception {
     Results res = ss.search("type:\"single\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -257,9 +256,9 @@
   @Test
   public void testFindReleaseGroupByPrimaryType() throws Exception {
     Results res = ss.search("primarytype:\"single\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -268,9 +267,9 @@
   @Test
   public void testFindReleaseGroupBySecondaryType() throws Exception {
     Results res = ss.search("secondarytype:\"live\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -279,9 +278,9 @@
   @Test
   public void testFindReleaseGroupByNumericType() throws Exception {
     Results res = ss.search("type:2", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -290,11 +289,11 @@
   @Test
   public void testFindReleaseGroupByDefault() throws Exception {
     Results res = ss.search("\"secret\"", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
     res = ss.search("\"Nobody's Twisting Your Arm\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
     assertEquals("Single", doc.get(ReleaseGroupIndexField.TYPE));
@@ -306,9 +305,9 @@
   @Test
   public void testFindReleaseGroupByArtist2() throws Exception {
     Results res = ss.search("artist:\"Erich Kunzel\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Epics", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
   }
@@ -316,9 +315,9 @@
   @Test
   public void testFindReleaseGroupByAllArtist2() throws Exception {
     Results res = ss.search("artist:\"Erich Kunzel and Cincinnati Pops\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Epics", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
   }
@@ -326,9 +325,9 @@
   @Test
   public void testFindReleaseGroupByArtistName() throws Exception {
     Results res = ss.search("artistname:\"Erich Kunzel\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Epics", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
   }
@@ -336,9 +335,9 @@
   @Test
   public void testFindReleaseGroupByAllArtistName() throws Exception {
     Results res = ss.search("artistname:\"Erich Kunzel\" AND artistname:\"Cincinnati Pops\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Epics", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
 
@@ -347,9 +346,9 @@
   @Test
   public void testFindReleaseGroupByTag() throws Exception {
     Results res = ss.search("tag:indie", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("2c7d81da-8fc3-3157-99c1-e9195ac92c45", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("Nobody's Twisting Your Arm", doc.get(ReleaseGroupIndexField.RELEASEGROUP));
   }
@@ -357,9 +356,9 @@
   @Test
   public void testFindReleaseGroupByComment() throws Exception {
     Results res = ss.search("comment:demo", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseGroupIndexField.RELEASEGROUP_ID));
     assertEquals("demo", doc.get(ReleaseGroupIndexField.COMMENT));
   }

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -11,7 +11,6 @@
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.IndexSearcher;
@@ -190,9 +189,9 @@
   @Test
   public void testFindReleaseById() throws Exception {
     Results res = ss.search("reid:\"1d9e8ed6-3893-4d3b-aa7d-6cd79609e386\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals(2, doc.getFields(ReleaseIndexField.CATALOG_NO).length);
@@ -222,9 +221,9 @@
   @Test
   public void testFindReleaseByName() throws Exception {
     Results res = ss.search("release:\"Our Glorious 5 Year Plan\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -232,9 +231,9 @@
   @Test
   public void testFindReleaseByDismax1() throws Exception {
     Results res = sd.search("Wrath", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -242,9 +241,9 @@
   @Test
   public void testFindReleaseByDismax2() throws Exception {
     Results res = sd.search("Farming", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -252,9 +251,9 @@
   @Test
   public void testFindReleaseByDismax3() throws Exception {
     Results res = sd.search("Incident", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -262,9 +261,9 @@
   @Test
   public void testFindReleaseByDismax4() throws Exception {
     Results res = sd.search("Our Glorious", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -272,9 +271,9 @@
   @Test
   public void testFindReleaseByDefault() throws Exception {
     Results res = ss.search("\"Our Glorious 5 Year Plan\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
 
@@ -283,9 +282,9 @@
   @Test
   public void testFindReleaseByArtistName() throws Exception {
     Results res = ss.search("artist:\"Farming Incident\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -293,9 +292,9 @@
   @Test
   public void testFindReleaseByFormat() throws Exception {
     Results res = ss.search("format:Vinyl", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
 
@@ -304,9 +303,9 @@
   @Test
   public void testFindReleaseByCatNo() throws Exception {
     Results res = ss.search("catno:WRATHCD25", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -315,18 +314,18 @@
     @Test
     public void testFindReleaseByCatNoIgnoreHypens() throws Exception {
         Results res = ss.search("catno:LP001", 0, 10);
-        assertEquals(1, res.totalHits);
+        assertEquals(1, res.getTotalHits());
         Result result = res.results.get(0);
-        MbDocument doc = result.doc;
+        MbDocument doc = result.getDoc();
         assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
         assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     }
   @Test
   public void testFindReleaseByBarcodeWithoutZero() throws Exception {
     Results res = ss.search("barcode:7599273202", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals(1, doc.getFields(ReleaseIndexField.BARCODE).length);
@@ -336,9 +335,9 @@
   @Test
   public void testFindReleaseByBarcodeWithZero() throws Exception {
     Results res = ss.search("barcode:07599273202", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals(1, doc.getFields(ReleaseIndexField.BARCODE).length);
@@ -348,9 +347,9 @@
   @Test
   public void testFindReleaseByAsin() throws Exception {
     Results res = ss.search("asin:B00004Y6O9", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -358,9 +357,9 @@
   @Test
   public void testFindReleaseByAsinLowercase() throws Exception {
     Results res = ss.search("asin:b00004y6O9", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -373,9 +372,9 @@
   @Test
   public void testFindReleaseByLanguage() throws Exception {
     Results res = ss.search("lang:eng", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -388,9 +387,9 @@
   @Test
   public void testFindReleaseByLanguageUppercase() throws Exception {
     Results res = ss.search("lang:ENG", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -401,9 +400,9 @@
   @Test
   public void testFindReleaseByScript() throws Exception {
     Results res = ss.search("script:latn", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -414,9 +413,9 @@
   @Test
   public void testFindReleaseByComment() throws Exception {
     Results res = ss.search("comment:demo", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("demo", doc.get(ReleaseIndexField.COMMENT));
   }
@@ -427,9 +426,9 @@
   @Test
   public void testFindReleaseByScriptUppercase() throws Exception {
     Results res = ss.search("script:LATN", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -440,9 +439,9 @@
   @Test
   public void testFindReleaseByCountry() throws Exception {
     Results res = ss.search("country:gb", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -453,9 +452,9 @@
   @Test
   public void testFindReleaseWithNoBarcode() throws Exception {
     Results res = ss.search("barcode:none", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Epics", doc.get(ReleaseIndexField.RELEASE));
   }
 
@@ -465,7 +464,7 @@
   @Test
   public void testFindReleaseWithNotKnownBarcode() throws Exception {
     Results res = ss.search("barcode:\\-", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
   }
 
   /*
@@ -474,9 +473,9 @@
   @Test
   public void testFindReleaseByNumTracks() throws Exception {
     Results res = ss.search("tracks:17", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -487,9 +486,9 @@
   @Test
   public void testFindReleaseByTracksOnMedium() throws Exception {
     Results res = ss.search("tracksmedium:10", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -500,9 +499,9 @@
   @Test
   public void testFindReleaseByNumDiscOnMedium() throws Exception {
     Results res = ss.search("discidsmedium:2", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -513,9 +512,9 @@
   @Test
   public void testFindReleaseByNumDisc() throws Exception {
     Results res = ss.search("discids:3", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -526,9 +525,9 @@
   @Test
   public void testFindReleaseByCountryUppercase() throws Exception {
     Results res = ss.search("country:GB", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -537,9 +536,9 @@
   @Test
   public void testFindReleaseByDate() throws Exception {
     Results res = ss.search("date:2005", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
   }
@@ -547,9 +546,9 @@
   @Test
   public void testFindReleaseByTypeLowercase() throws Exception {
     Results res = ss.search("type:\"compilation\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Compilation", doc.get(ReleaseGroupIndexField.TYPE));
@@ -558,9 +557,9 @@
   @Test
   public void testFindReleaseBySecondaryTypeFirst() throws Exception {
     Results res = ss.search("secondarytype:\"Live\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -570,9 +569,9 @@
   @Test
   public void testFindReleaseBySecondaryTypeSecond() throws Exception {
     Results res = ss.search("secondarytype:\"Compilation\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -582,9 +581,9 @@
   @Test
   public void testFindReleaseByTypeTitleCase() throws Exception {
     Results res = ss.search("type:\"Compilation\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseIndexField.PRIMARY_TYPE));
@@ -594,9 +593,9 @@
   @Test
   public void testFindReleaseByRgid() throws Exception {
     Results res = ss.search("rgid:1d9e8ed6-3893-4d3b-aa7d-6cd79609e333", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -606,9 +605,9 @@
   @Test
   public void testFindReleaseByNumericType() throws Exception {
     Results res = ss.search("type:4", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -618,9 +617,9 @@
   @Test
   public void testFindReleaseByStatusLowercase() throws Exception {
     Results res = ss.search("status:\"official\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -630,9 +629,9 @@
   @Test
   public void testFindReleaseByStatusTitleCase() throws Exception {
     Results res = ss.search("status:\"Official\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -642,9 +641,9 @@
   @Test
   public void testFindReleaseByNumericstatus() throws Exception {
     Results res = ss.search("status:1", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("Our Glorious 5 Year Plan", doc.get(ReleaseIndexField.RELEASE));
     assertEquals("Wrath Records", doc.get(ReleaseIndexField.LABEL));
     assertEquals("Album", doc.get(ReleaseGroupIndexField.PRIMARY_TYPE));
@@ -654,9 +653,9 @@
   @Test
   public void testFindReleaseGroupByArtist2() throws Exception {
     Results res = ss.search("artist:\"Erich Kunzel\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseIndexField.RELEASE_ID));
     assertEquals("Epics", doc.get(ReleaseIndexField.RELEASE));
 
@@ -665,9 +664,9 @@
   @Test
   public void testFindReleaseGroupByAllArtist2() throws Exception {
     Results res = ss.search("artist:\"Erich Kunzel and Cincinnati Pops\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("0011c128-b1f2-300e-88cc-c33c30dce704", doc.get(ReleaseIndexField.RELEASE_ID));
     assertEquals("Epics", doc.get(ReleaseIndexField.RELEASE));
   }
@@ -675,25 +674,25 @@
   @Test
   public void testFindReleaseByNumberofMediums() throws Exception {
     Results res = ss.search("mediums:2", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testFindReleaseByLabelId() throws Exception {
     Results res = ss.search("laid:c1dfaf9c-d498-4f6c-b040-f7714315fcea", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
   public void testNumericRangeQuery() throws Exception {
     Results res = ss.search("tracksmedium:[7 TO 17]", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
   }
 
   @Test
   public void testFindReleaseByPuid() throws Exception {
     Results res = ss.search("puid:668f3a22-03e8-e3cd-55e4-2e9a0906419a", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   /**
@@ -862,9 +861,9 @@
   @Test
   public void testFindReleaseByTag() throws Exception {
         Results res = ss.search("tag:punk", 0, 10);
-        assertEquals(1, res.totalHits);
+        assertEquals(1, res.getTotalHits());
         Result result = res.results.get(0);
-        MbDocument doc = result.doc;
+        MbDocument doc = result.getDoc();
         assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", doc.get(ReleaseIndexField.RELEASE_ID));
         assertEquals("punk", doc.get(ReleaseIndexField.TAG));
         assertEquals("10", doc.get(ReleaseIndexField.TAGCOUNT));

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindTagTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindTagTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindTagTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -12,7 +12,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.search.LuceneVersion;
@@ -59,14 +58,14 @@
   @Test
   public void testFindTagByName() throws Exception {
     Results res = ss.search("tag:rock", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
     Result result = res.results.get(0);
 
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("rock", doc.get(TagIndexField.TAG));
 
     result = res.results.get(1);
-    doc = result.doc;
+    doc = result.getDoc();
     assertEquals("classic rock", doc.get(TagIndexField.TAG));
   }
 

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -12,7 +12,6 @@
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.mmd2.Artist;
@@ -109,9 +108,9 @@
   @Test
   public void testFindWorkById() throws Exception {
     Results res = ss.search("wid:\"4ff89cf0-86af-11de-90ed-001fc6f176ff\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -119,9 +118,9 @@
   @Test
   public void testFindWorkByName() throws Exception {
     Results res = ss.search("work:\"Symphony No. 5\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -129,9 +128,9 @@
   @Test
   public void testFindWorkByLyricsLang() throws Exception {
     Results res = ss.search("lang:eng", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -139,9 +138,9 @@
   @Test
   public void testFindWorkByDismax1() throws Exception {
     Results res = sd.search("Symphony No. 5", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -149,9 +148,9 @@
   @Test
   public void testFindWorkByDismax2() throws Exception {
     Results res = sd.search("Symphony", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -159,9 +158,9 @@
   @Test
   public void testFindWorkByComment() throws Exception {
     Results res = ss.search("comment:demo", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("demo", doc.get(WorkIndexField.COMMENT));
   }
@@ -169,9 +168,9 @@
   @Test
   public void testFindWorkByArtist() throws Exception {
     Results res = ss.search("artist:\"Пётр Ильич Чайковский\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -180,9 +179,9 @@
   @Test
   public void testFindWorkByISWC() throws Exception {
     Results res = ss.search("iswc:\"T-101779304-1\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -190,9 +189,9 @@
   @Test
   public void testFindWorkByType() throws Exception {
     Results res = ss.search("type:\"opera\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -200,9 +199,9 @@
   @Test
   public void testFindWorkByAlias() throws Exception {
     Results res = ss.search("alias:symp5", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -210,9 +209,9 @@
   @Test
   public void testFindWorkByTag() throws Exception {
     Results res = ss.search("tag:classical", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -220,9 +219,9 @@
   @Test
   public void testFindWorkByDefaultUsingName() throws Exception {
     Results res = ss.search("\"Symphony No. 5\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }
@@ -230,9 +229,9 @@
   @Test
   public void testFindWorkByDefaultUsingAlias() throws Exception {
     Results res = ss.search("symp5", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
     Result result = res.results.get(0);
-    MbDocument doc = result.doc;
+    MbDocument doc = result.getDoc();
     assertEquals("4ff89cf0-86af-11de-90ed-001fc6f176ff", doc.get(WorkIndexField.WORK_ID));
     assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
   }

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/ReloadIndexesTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/ReloadIndexesTest.java	2013-02-28 10:30:20 UTC (rev 13639)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/ReloadIndexesTest.java	2013-02-28 10:38:05 UTC (rev 13640)
@@ -12,7 +12,6 @@
 import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.NumericUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.musicbrainz.search.LuceneVersion;
@@ -146,7 +145,7 @@
   public void testReloadDoesNothingIfIndexNotChanged() throws Exception {
     ss.reloadIndex();
     Results res = ss.search("type:\"group\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
@@ -154,19 +153,19 @@
 
     Results res;
     res = ss.search("type:\"group\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
 
     // Testing reloading if there are no changes
     ss.reloadIndex();
 
     res = ss.search("type:\"group\"", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
 
     addArtist2();
     ss.reloadIndex();
 
     res = ss.search("type:\"group\"", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
   }
 
   @Test
@@ -174,7 +173,7 @@
 
     Results res;
     res = sd.search("Bunnymen", 0, 10);
-    assertEquals(0, res.totalHits);
+    assertEquals(0, res.getTotalHits());
 
     addArtist2();
     // this should also reload index for the 2nd searchserver sd, since they share the same
@@ -182,7 +181,7 @@
     ss.reloadIndex();
 
     res = sd.search("Bunnymen", 0, 10);
-    assertEquals(1, res.totalHits);
+    assertEquals(1, res.getTotalHits());
   }
 
   @Test
@@ -221,6 +220,6 @@
     ss = new ArtistSearch(searcherManager);
 
     Results res = ss.search("type:\"group\"", 0, 10);
-    assertEquals(2, res.totalHits);
+    assertEquals(2, res.getTotalHits());
   }
 }


_______________________________________________
MusicBrainz-commits mailing list
[email protected]
http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-commits