[mb-commits] r13722 - in search_server/trunk: index/src/main/java/org/musicbrainz/search/index index/src/test/java/org/musicbrainz/search/index servlet/src/test/java/org/musicbrainz/search/servlet

[email protected] Thu, 03 Oct 2013 18:10:08 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1VRnLk-0005cp-LG@wiley>
Author: ijabz
Date: 2013-10-03 18:10:07 +0000 (Thu, 03 Oct 2013)
New Revision: 13722

Added:
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseQuality.java
Modified:
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java
   search_server/trunk/index/src/test/java/org/musicbrainz/search/index/AbstractIndexTest.java
   search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java
Log:
SEARCH-132:Allow to filter release search by quality

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java	2013-10-03 15:29:59 UTC (rev 13721)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java	2013-10-03 18:10:07 UTC (rev 13722)
@@ -100,7 +100,7 @@
                 "  rgt.name as type, rg.id as rg_id, rg.gid as rg_gid, rm.amazon_asin, " +
                 "  language.iso_code_3 as language, language.iso_code_2t as language_2t, script.iso_code as script, rs.name as status, " +
                 "  sum(m.track_count) as tracks," +
-                "  r.artist_credit," +
+                "  r.artist_credit, r.quality," +
                 "  r.comment" +
                 " FROM release r " +
                 "  LEFT JOIN release_meta rm ON r.id = rm.id " +
@@ -111,7 +111,7 @@
                 "  LEFT JOIN script ON r.script=script.id " +
                 "  LEFT JOIN medium m ON m.release=r.id" +
                 " GROUP BY r.id,r.gid,r.name,barcode,rgt.name,rg.id, rg.gid," +
-                "  rm.amazon_asin, language.iso_code_3, language.iso_code_2t, script.iso_code,rs.name,r.artist_credit, r.comment");
+                "  rm.amazon_asin, language.iso_code_3, language.iso_code_2t, script.iso_code,rs.name,r.artist_credit, r.quality, r.comment");
         clock.stop();
         System.out.println("tmp_release     :Finished:" + Utils.formatClock(clock));
         clock.reset();

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java	2013-10-03 15:29:59 UTC (rev 13721)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java	2013-10-03 18:10:07 UTC (rev 13722)
@@ -175,7 +175,7 @@
                 " SELECT id, gid, name, " +
                 "  barcode, " +
                 "  type, rg_gid, amazon_asin, " +
-                "  language, language_2t, script, status, comment " +
+                "  language, language_2t, script, status, comment, quality " +
                 " FROM tmp_release rl " +
                 " WHERE id BETWEEN ? AND ? ");
 
@@ -515,6 +515,8 @@
             release.setDisambiguation(comment);
         }
 
+        doc.addField(ReleaseIndexField.QUALITY,ReleaseQuality.mapReleaseQuality(rs.getInt("quality")).toString());
+
         if (labelInfo.containsKey(id)) {
             LabelInfoList labelInfoList = of.createLabelInfoList();
             for (List<String> entry : labelInfo.get(id)) {

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java	2013-10-03 15:29:59 UTC (rev 13721)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java	2013-10-03 18:10:07 UTC (rev 13722)
@@ -33,6 +33,7 @@
     PRIMARY_TYPE        ("primarytype",		MusicBrainzFieldTypes.TEXT_NOT_STORED_ANALYZED_NO_NORMS, new CaseInsensitiveKeywordAnalyzer()),
     //TODO This does nothing but cannot remove yet for backwards compatability
     PUID    		    ("puid",		    MusicBrainzFieldTypes.TEXT_NOT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),
+    QUALITY             ("quality",		    MusicBrainzFieldTypes.TEXT_NOT_STORED_ANALYZED_NO_NORMS, new CaseInsensitiveKeywordAnalyzer()),
     RELEASE			    ("release",		    MusicBrainzFieldTypes.TEXT_STORED_ANALYZED, new TitleAnalyzer()),
     RELEASE_ACCENT      ("releaseaccent",   MusicBrainzFieldTypes.TEXT_NOT_STORED_ANALYZED, new MusicbrainzKeepAccentsAnalyzer()),
     RELEASE_ID		    ("reid",		    MusicBrainzFieldTypes.TEXT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),

Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/AbstractIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/AbstractIndexTest.java	2013-10-03 15:29:59 UTC (rev 13721)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/AbstractIndexTest.java	2013-10-03 18:10:07 UTC (rev 13722)
@@ -504,6 +504,7 @@
                 "  script integer," +
                 "  barcode character varying(255)," +
                 "  comment character varying(255)," +
+                "  quality integer," +
                 "  last_updated timestamp," +
                 "  edits_pending integer DEFAULT 0" +
                 ")");

Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java	2013-10-03 15:29:59 UTC (rev 13721)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java	2013-10-03 18:10:07 UTC (rev 13722)
@@ -50,8 +50,8 @@
                 " VALUES (491240, 'efd2ace2-b3b9-305f-8a53-9803595c0e37', 'Crocodiles', 1, 3)");
 
         stmt.addBatch("INSERT INTO release (id, gid, name, artist_credit, release_group, status, packaging, " +
-                "  language, script, comment) " +
-                " VALUES (491240, 'c3b8dbc9-c1ff-4743-9015-8d762819134e', 'Crocodiles (bonus disc)', 1, 491240, 1, 1, 1, 1,'demo')");
+                "  language, script, comment, quality) " +
+                " VALUES (491240, 'c3b8dbc9-c1ff-4743-9015-8d762819134e', 'Crocodiles (bonus disc)', 1, 491240, 1, 1, 1, 1,'demo',2)");
 
 
         stmt.addBatch("INSERT INTO release_meta (id, amazon_asin) VALUES (491240, 'B00005NTQ7')");
@@ -629,6 +629,25 @@
      * @throws Exception exception
      */
     @Test
+    public void testIndexReleaseQuality() throws Exception {
+
+        addReleaseOne();
+        RAMDirectory ramDir = new RAMDirectory();
+        createIndex(ramDir);
+
+        IndexReader ir = DirectoryReader.open(ramDir);
+        assertEquals(2, ir.numDocs());
+        {
+            checkTerm(ir,ReleaseIndexField.QUALITY,"high");
+        }
+        ir.close();
+    }
+
+
+    /**
+     * @throws Exception exception
+     */
+    @Test
     public void testIndexReleaseFormat() throws Exception {
         addReleaseFive();
         RAMDirectory ramDir = new RAMDirectory();

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-10-03 15:29:59 UTC (rev 13721)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java	2013-10-03 18:10:07 UTC (rev 13722)
@@ -104,6 +104,7 @@
             stl.getSecondaryType().add("Compilation");
             release.getReleaseGroup().setSecondaryTypeList(stl);
 
+            doc.addField(ReleaseIndexField.QUALITY, ReleaseQuality.HIGH.toString());
             doc.addField(ReleaseIndexField.TAG, "punk");
             TagList tagList = of.createTagList();
             Tag tag = of.createTag();
@@ -367,6 +368,28 @@
     }
 
     @Test
+    public void testFindReleaseByQuality() throws Exception {
+        Results res = ss.search("quality:high", 0, 10);
+        assertEquals(1, res.getTotalHits());
+        assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", getReleaseId(res.results.get(0).getDoc()));
+
+    }
+
+    @Test
+    public void testFindReleaseByQuality2() throws Exception {
+        Results res = ss.search("quality:HIGH", 0, 10);
+        assertEquals(1, res.getTotalHits());
+        assertEquals("1d9e8ed6-3893-4d3b-aa7d-6cd79609e386", getReleaseId(res.results.get(0).getDoc()));
+
+    }
+
+    @Test
+    public void testFindReleaseByQuality3() throws Exception {
+        Results res = ss.search("quality:low", 0, 10);
+        assertEquals(0, res.getTotalHits());
+    }
+
+    @Test
     public void testFindReleaseByCatNo() throws Exception {
         Results res = ss.search("catno:WRATHCD-25", 0, 10);
         assertEquals(1, res.getTotalHits());