[mb-commits] r13672 - 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] Wed, 01 May 2013 19:21:00 +0000
| Newsgroups | gmane.comp.audio.musicbrainz.cvs |
|---|---|
| Message-ID | <E1UXcaK-0008GN-Ae@wiley> |
Author: ijabz
Date: 2013-05-01 19:20:38 +0000 (Wed, 01 May 2013)
New Revision: 13672
Modified:
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java
search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.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/IssueSearch240Test.java
Log:
SchemaChnages:More stuff for release and recordings
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java 2013-05-01 15:40:23 UTC (rev 13671)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java 2013-05-01 19:20:38 UTC (rev 13672)
@@ -749,6 +749,7 @@
String type = ReleaseGroupHelper.calculateOldTypeFromPrimaryType(primaryType,
rg.getSecondaryTypeList().getSecondaryType());
doc.addFieldOrNoValue(RecordingIndexField.RELEASE_TYPE, type);
+ rg.setType(type);
} else {
doc.addFieldOrNoValue(RecordingIndexField.RELEASE_TYPE, release.getReleaseGroup().getPrimaryType());
}
@@ -783,6 +784,16 @@
doc.addFieldOrNoValue(RecordingIndexField.RELEASE_DATE, re.getDate());
doc.addFieldOrNoValue(RecordingIndexField.COUNTRY, re.getCountry());
}
+
+ ReleaseEvent firstReleaseEvent = release.getReleaseEventList().getReleaseEvent().get(0);
+ if (!Strings.isNullOrEmpty(firstReleaseEvent.getDate())) {
+ release.setDate(firstReleaseEvent.getDate());
+ }
+ if (!Strings.isNullOrEmpty(firstReleaseEvent.getCountry())) {
+ release.setCountry(firstReleaseEvent.getCountry());
+ }
+ release.setCountry(firstReleaseEvent.getCountry());
+
} else {
doc.addFieldOrNoValue(RecordingIndexField.RELEASE_DATE, null);
doc.addFieldOrNoValue(RecordingIndexField.COUNTRY, null);
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-05-01 15:40:23 UTC (rev 13671)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java 2013-05-01 19:20:38 UTC (rev 13672)
@@ -610,6 +610,7 @@
release.setTagList(tagList);
}
+ System.out.println("ReleaseEventsCheck");
if (releaseEvents.containsKey(id)) {
ReleaseEventList rel = of.createReleaseEventList();
for (ReleaseEvent releaseEvent : releaseEvents.get(id)) {
@@ -624,8 +625,10 @@
release.setReleaseEventList(rel);
//backwards compatability
+ System.out.println("ReleaseCountryCheck");
ReleaseEvent firstReleaseEvent = rel.getReleaseEvent().get(0);
if (!Strings.isNullOrEmpty(firstReleaseEvent.getCountry())) {
+ System.out.println("ReleaseCountry1");
release.setCountry(firstReleaseEvent.getCountry());
}
if (!Strings.isNullOrEmpty(firstReleaseEvent.getDate())) {
Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java 2013-05-01 15:40:23 UTC (rev 13671)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java 2013-05-01 19:20:38 UTC (rev 13672)
@@ -8,9 +8,7 @@
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.NumericUtils;
import org.junit.Test;
-import org.musicbrainz.mmd2.ArtistCredit;
-import org.musicbrainz.mmd2.Recording;
-import org.musicbrainz.mmd2.Release;
+import org.musicbrainz.mmd2.*;
import java.sql.Statement;
@@ -691,7 +689,7 @@
}
/**
- * Test tracknum
+ * Test Free Text Track Number
*
* @throws Exception exception
*/
@@ -711,7 +709,7 @@
}
/**
- * Test tracknum
+ * Test Track Position
*
* @throws Exception exception
*/
@@ -725,9 +723,7 @@
IndexReader ir = DirectoryReader.open(ramDir);
assertEquals(2, ir.numDocs());
{
- Document doc = ir.document(1);
- assertEquals(1, doc.getFields(RecordingIndexField.TRACKNUM.getName()).length);
- // assertEquals(4, NumericUtils.prefixCodedToInt(doc.getField(RecordingIndexField.TRACKNUM.getName()).stringValue()));
+ checkTerm(ir, RecordingIndexField.TRACKNUM, 4);
}
ir.close();
}
@@ -796,11 +792,9 @@
checkTerm(ir, RecordingIndexField.RELEASE_ID, "c3b8dbc9-c1ff-4743-9015-8d762819134e");
checkTerm(ir, RecordingIndexField.POSITION, "1");
- checkTermX(ir, RecordingIndexField.RELEASE_ID, "c3b8dbc9-c1ff-4743-9015-8d762819134f",1);
+ checkTermX(ir, RecordingIndexField.RELEASE_ID, "c3b8dbc9-c1ff-4743-9015-8d762819134f", 1);
checkTermX(ir, RecordingIndexField.RELEASE_TYPE, "single",1);
checkTermX(ir, RecordingIndexField.RELEASE_STATUS, "promotion",1);
- //checkTermX(ir, RecordingIndexField.POSITION, "1",1);
-
checkTerm(ir, RecordingIndexField.NUM_TRACKS_RELEASE, 2);
checkTerm(ir, RecordingIndexField.TRACKNUM, 4);
checkTerm(ir, RecordingIndexField.NUM_TRACKS_RELEASE, 2);
@@ -808,4 +802,55 @@
}
ir.close();
}
+
+ /**
+ * @throws Exception exception
+ */
+ @Test
+ public void testStoredRecording() throws Exception {
+
+ addTrackOne();
+ RAMDirectory ramDir = new RAMDirectory();
+ createIndex(ramDir);
+
+ IndexReader ir = DirectoryReader.open(ramDir);
+ assertEquals(2, ir.numDocs());
+ {
+
+ Document doc = ir.document(1);
+ Recording recording = (Recording) MMDSerializer.unserialize(doc.get(RecordingIndexField.RECORDING_STORE.getName()), Recording.class);
+ assertEquals("2f250ed2-6285-40f1-aa2a-14f1c05e9765", recording.getId());
+ assertEquals("Do It Clean", recording.getTitle());
+
+ ReleaseList releaseList = recording.getReleaseList();
+ Release release = releaseList.getRelease().get(0);
+ assertNotNull(release);
+ assertEquals("Crocodiles (bonus disc)", release.getTitle());
+ assertEquals("Official", release.getStatus());
+ assertEquals("c3b8dbc9-c1ff-4743-9015-8d762819134e", release.getId());
+ assertEquals("GB", release.getCountry());
+ assertEquals("1970-01-01", release.getDate());
+
+ ReleaseGroup releaseGroup = release.getReleaseGroup();
+ assertNotNull(releaseGroup);
+ assertEquals("efd2ace2-b3b9-305f-8a53-9803595c0e37",releaseGroup.getId());
+ assertEquals("Compilation",releaseGroup.getType());
+ assertEquals("Album",releaseGroup.getPrimaryType());
+
+ SecondaryTypeList secondaryTypeList = releaseGroup.getSecondaryTypeList();
+ assertNotNull(secondaryTypeList);
+ assertEquals("Compilation",secondaryTypeList.getSecondaryType().get(0));
+ assertEquals("Interview",secondaryTypeList.getSecondaryType().get(1));
+
+ MediumList mediumList = release.getMediumList();
+ assertNotNull(mediumList);
+ assertEquals(2,mediumList.getTrackCount().intValue());
+
+ Medium medium = mediumList.getMedium().get(0);
+ assertNotNull(medium);
+ assertEquals(1, medium.getPosition().intValue());
+ assertEquals("Vinyl", medium.getFormat());
+ }
+ ir.close();
+ }
}
\ No newline at end of file
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-05-01 15:40:23 UTC (rev 13671)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java 2013-05-01 19:20:38 UTC (rev 13672)
@@ -259,7 +259,6 @@
IndexReader ir = DirectoryReader.open(ramDir);
assertEquals(2, ir.numDocs());
{
- Document doc = ir.document(1);
checkTerm(ir, ReleaseIndexField.RELEASE, "bonus");
checkTerm(ir, ReleaseIndexField.RELEASE_ID, "c3b8dbc9-c1ff-4743-9015-8d762819134e");
checkTerm(ir, ReleaseIndexField.TYPE, "ep");
@@ -852,4 +851,56 @@
}
ir.close();
}
+
+ /**
+ * @throws Exception exception
+ */
+ @Test
+ public void testStoredRelease1() throws Exception {
+
+ addReleaseOne();
+ RAMDirectory ramDir = new RAMDirectory();
+ createIndex(ramDir);
+
+ IndexReader ir = DirectoryReader.open(ramDir);
+ assertEquals(2, ir.numDocs());
+ {
+
+ Document doc = ir.document(1);
+ Release release = (Release) MMDSerializer.unserialize(doc.get(ReleaseIndexField.RELEASE_STORE.getName()), Release.class);
+ assertEquals("c3b8dbc9-c1ff-4743-9015-8d762819134e", release.getId());
+ assertEquals("Crocodiles (bonus disc)", release.getTitle());
+ assertEquals("B00005NTQ7", release.getAsin());
+
+
+ }
+ ir.close();
+ }
+
+ /**
+ * @throws Exception exception
+ */
+ @Test
+ public void testStoredRelease2() throws Exception {
+
+ addReleaseThree();
+ RAMDirectory ramDir = new RAMDirectory();
+ createIndex(ramDir);
+
+ IndexReader ir = DirectoryReader.open(ramDir);
+ assertEquals(2, ir.numDocs());
+ {
+
+ Document doc = ir.document(1);
+ Release release = (Release) MMDSerializer.unserialize(doc.get(ReleaseIndexField.RELEASE_STORE.getName()), Release.class);
+ assertEquals("c3b8dbc9-c1ff-4743-9015-8d762819134e", release.getId());
+ assertEquals("Crocodiles (bonus disc)", release.getTitle());
+ assertEquals("B00005NTQ7", release.getAsin());
+ assertEquals("GB", release.getCountry());
+ assertEquals("1970-01-01", release.getDate());
+
+
+ }
+ ir.close();
+ }
}
\ No newline at end of file
Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/IssueSearch240Test.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/IssueSearch240Test.java 2013-05-01 15:40:23 UTC (rev 13671)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/IssueSearch240Test.java 2013-05-01 19:20:38 UTC (rev 13672)
@@ -25,124 +25,63 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-/**
- * Assumes an index has been built stored and in the data folder, I've picked a fairly obscure bside so hopefully
- * will not get added to another release
- */
-public class IssueSearch240Test
-{
+public class IssueSearch240Test {
- private AbstractSearchServer ss;
- private AbstractDismaxSearchServer sd;
+ private AbstractSearchServer ss;
+ private AbstractDismaxSearchServer sd;
+ @Before
+ public void setUp() throws Exception {
+ ObjectFactory of = new ObjectFactory();
- @Before
- public void setUp() throws Exception {
- ObjectFactory of = new ObjectFactory();
+ RAMDirectory ramDir = new RAMDirectory();
+ Analyzer analyzer = DatabaseIndex.getAnalyzer(RecordingIndexField.class);
+ IndexWriterConfig writerConfig = new IndexWriterConfig(LuceneVersion.LUCENE_VERSION, analyzer);
+ IndexWriter writer = new IndexWriter(ramDir, writerConfig);
- RAMDirectory ramDir = new RAMDirectory();
- Analyzer analyzer = DatabaseIndex.getAnalyzer(RecordingIndexField.class);
- IndexWriterConfig writerConfig = new IndexWriterConfig(LuceneVersion.LUCENE_VERSION,analyzer);
- IndexWriter writer = new IndexWriter(ramDir, writerConfig);
+ {
+ MbDocument doc = new MbDocument();
+ Recording recording = of.createRecording();
+ doc.addField(RecordingIndexField.RECORDING_ID, "7ca7782b-a602-448b-b108-bb881a7be2d6");
+ recording.setId("7ca7782b-a602-448b-b108-bb881a7be2d6");
+ doc.addField(RecordingIndexField.RECORDING, "I Don\u001at Dance");
+ recording.setTitle("I Don\u001at Dance");
+ doc.addField(RecordingIndexField.RECORDING_STORE, MMDSerializer.serialize(recording));
+ writer.addDocument(doc.getLuceneDocument());
+ }
- {
- MbDocument doc = new MbDocument();
- doc.addField(RecordingIndexField.RECORDING_ID, "7ca7782b-a602-448b-b108-bb881a7be2d6");
- doc.addField(RecordingIndexField.RECORDING, "I Don\u001at Dance");
- doc.addField(RecordingIndexField.RELEASE_ID, "1d9e8ed6-3893-4d3b-aa7d-6cd79609e386");
- doc.addField(RecordingIndexField.RELEASE, "Our Glorious 5 Year Plan");
- doc.addField(RecordingIndexField.ARTIST_ID, "4302e264-1cf0-4d1f-aca7-2a6f89e34b36");
- doc.addField(RecordingIndexField.ARTIST, "Farming Incident");
- doc.addField(RecordingIndexField.ARTIST_NAME, "Farming Incident");
- doc.addField(RecordingIndexField.PUID, "1d9e8ed6-3893-4d3b-aa7d-72e79609e386");
- doc.addField(RecordingIndexField.COMMENT, "demo");
- doc.addField(RecordingIndexField.COUNTRY, "UK");
- doc.addField(RecordingIndexField.FORMAT, "Vinyl");
+ {
+ MbDocument doc = new MbDocument();
+ doc.addField(MetaIndexField.META, MetaIndexField.META_VALUE);
+ doc.addNumericField(MetaIndexField.LAST_UPDATED, new Date().getTime());
+ writer.addDocument(doc.getLuceneDocument());
+ }
- ArtistCredit ac = of.createArtistCredit();
- NameCredit nc = of.createNameCredit();
- Artist artist = of.createArtist();
- artist.setId("4302e264-1cf0-4d1f-aca7-2a6f89e34b36");
- artist.setName("Farming Incident");
- artist.setSortName("Incident, Farming");
- nc.setArtist(artist);
- ac.getNameCredit().add(nc);
- doc.addField(RecordingIndexField.ARTIST_CREDIT, MMDSerializer.serialize(ac));
+ writer.close();
+ SearcherManager searcherManager = new SearcherManager(ramDir,
+ new MusicBrainzSearcherFactory(ResourceType.RECORDING));
+ ss = new RecordingSearch(searcherManager);
+ sd = new RecordingDismaxSearch(ss);
+ }
- //Track Artist different to Recording Artist
- ac = of.createArtistCredit();
- nc = of.createNameCredit();
- artist = of.createArtist();
- artist.setId("2302e264-1cf0-4d1f-aca7-2a6f89e34b36");
- artist.setName("Pig Incident");
- artist.setSortName("Incident, Pig");
- nc.setArtist(artist);
- ac.getNameCredit().add(nc);
- doc.addNumericField(RecordingIndexField.DURATION, 234000);
+ @Test
+ public void testOutputAsXml() throws Exception {
- doc.addNumericField(RecordingIndexField.QUANTIZED_DURATION, (234000 / 2000));
- doc.addNumericField(RecordingIndexField.NUM_TRACKS,10);
- doc.addNumericField(RecordingIndexField.NUM_TRACKS_RELEASE,10);
- doc.addNumericField(RecordingIndexField.TRACKNUM, 5);
- doc.addField(RecordingIndexField.NUMBER, "A4");
- doc.addField(RecordingIndexField.RECORDING, "Gravitational Lens");
- doc.addField(RecordingIndexField.RELEASEGROUP_ID, "4444e264-1cf0-4d1f-aca7-2a6f89e34b36");
-
- doc.addField(RecordingIndexField.POSITION, "1");
- doc.addField(RecordingIndexField.RELEASE_TYPE, "Compilation");
- doc.addField(RecordingIndexField.RELEASE_PRIMARY_TYPE, "Album");
- doc.addField(RecordingIndexField.RELEASE_SECONDARY_TYPE, "Compilation");
-
- SecondaryTypeList stl = of.createSecondaryTypeList();
- stl.getSecondaryType().add("Compilation");
-
- doc.addField(RecordingIndexField.RELEASE_STATUS, "Official");
- doc.addField(RecordingIndexField.RELEASE_DATE, "1970-01-01");
- doc.addField(RecordingIndexField.ISRC, "123456789");
- doc.addField(RecordingIndexField.ISRC, "abcdefghi");
- doc.addNumericField(RecordingIndexField.DURATION, 233000);
-
- doc.addField(RecordingIndexField.TAG, "indie");
- doc.addField(RecordingIndexField.RELEASE_AC_VA,"1");
- writer.addDocument(doc.getLuceneDocument());
-
+ Results res = ss.search("rid:7ca7782b-a602-448b-b108-bb881a7be2d6", 0, 10);
+ ResultsWriter writer = ss.getMmd2Writer();
+ StringWriter sw = new StringWriter();
+ PrintWriter pr = new PrintWriter(sw);
+ writer.write(pr, res, SearchServerServlet.RESPONSE_XML);
+ pr.close();
+ String output = sw.toString();
+ System.out.println("Xml is" + output);
+ assertTrue(output.contains("xmlns:ext=\"http://musicbrainz.org/ns/ext#-2.0\""));
+ assertTrue(output.contains("id=\"7ca7782b-a602-448b-b108-bb881a7be2d6\""));
+ //IllegalAccessError control char converted toString() apostrophe
+ //assertTrue(output.contains("<title>I Don't Dance</title"));
}
- {
- MbDocument doc = new MbDocument();
- doc.addField(MetaIndexField.META, MetaIndexField.META_VALUE);
- doc.addNumericField(MetaIndexField.LAST_UPDATED, new Date().getTime());
- writer.addDocument(doc.getLuceneDocument());
- }
-
- writer.close();
- SearcherManager searcherManager = new SearcherManager(ramDir,
- new MusicBrainzSearcherFactory(ResourceType.RECORDING));
- ss = new RecordingSearch(searcherManager);
- sd = new RecordingDismaxSearch(ss);
- }
-
-
- @Test
- public void testOutputAsXml() throws Exception {
-
- Results res = ss.search("rid:7ca7782b-a602-448b-b108-bb881a7be2d6", 0, 10);
- ResultsWriter writer = ss.getMmd2Writer();
- StringWriter sw = new StringWriter();
- PrintWriter pr = new PrintWriter(sw);
- writer.write(pr, res,SearchServerServlet.RESPONSE_XML);
- pr.close();
- String output = sw.toString();
- System.out.println("Xml is" + output);
- assertTrue(output.contains("count=\"1\""));
- assertTrue(output.contains("offset=\"0\""));
- assertTrue(output.contains("xmlns:ext=\"http://musicbrainz.org/ns/ext#-2.0\""));
- assertTrue(output.contains("id=\"4444e264-1cf0-4d1f-aca7-2a6f89e34b36\""));
- //IllegalAccessError control char convetted toString() apostrophe
- //assertTrue(output.contains("<title>I Don't Dance</title"));
- }
-
}