[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());