[mb-commits] r13711 - in search_server/trunk/index/src: main/java/org/musicbrainz/search/index test/java/org/musicbrainz/search/index
[email protected] Wed, 02 Oct 2013 10:49:45 +0000
| Newsgroups | gmane.comp.audio.musicbrainz.cvs |
|---|---|
| Message-ID | <E1VRK01-0002Bn-1H@wiley> |
Author: ijabz
Date: 2013-10-02 10:49:37 +0000 (Wed, 02 Oct 2013)
New Revision: 13711
Modified:
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ArtistCreditHelper.java
search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseGroupIndexTest.java
Log:
SEARCH-46:Searching for a release by releasename and artists english name will give no matches, now adds aliases of all locales to artistname search field
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ArtistCreditHelper.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ArtistCreditHelper.java 2013-10-02 10:29:56 UTC (rev 13710)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ArtistCreditHelper.java 2013-10-02 10:49:37 UTC (rev 13711)
@@ -27,9 +27,7 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
@@ -217,43 +215,15 @@
{
if (ac!=null) {
+ buildIndexFieldsOnlyFromArtistCredit( doc,
+ ac,
+ artist,
+ artistNameCredit,
+ artistId,
+ artistName);
- //Search Fields
-
- //The full artist credit as it appears on the release
- doc.addField(artist, ArtistCreditHelper.buildFullArtistCreditName(ac));
- for(NameCredit nc:ac.getNameCredit()) {
-
- //Each individual name credit (uses artist if name credit is unchanged from artist name)
- if(nc.getName()!=null) {
- doc.addField(artistNameCredit, nc.getName());
- }
- else {
- doc.addField(artistNameCredit, nc.getArtist().getName());
- }
-
- //Each artist id and name on the release
- doc.addField(artistId, nc.getArtist().getId());
- doc.addField(artistName, nc.getArtist().getName());
-
- //If there is an english locale based alias we add this to help when looking up releases
- //by artists who name is in non-latin script
- if(nc.getArtist().getAliasList()!=null && nc.getArtist().getAliasList().getAlias().size()>0)
- {
- for(Alias alias:nc.getArtist().getAliasList().getAlias())
- {
- if(alias.getLocale()!=null && alias.getLocale().equals("en"))
- {
- doc.addField(artistName,nc.getArtist().getAliasList().getAlias().get(0).getContent());
- break;
- }
- }
- }
- }
-
//Display Field
doc.addField(artistCredit, MMDSerializer.serialize(ac));
-
}
}
@@ -265,10 +235,9 @@
IndexField artistName)
{
+ Set<String> aliasWithLocales = new HashSet<String>();
if (ac!=null) {
- //Search Fields
-
//The full artist credit as it appears on the release
doc.addField(artist, ArtistCreditHelper.buildFullArtistCreditName(ac));
for(NameCredit nc:ac.getNameCredit()) {
@@ -291,13 +260,17 @@
{
for(Alias alias:nc.getArtist().getAliasList().getAlias())
{
- if(alias.getLocale()!=null && alias.getLocale().equals("en"))
+ if(alias.getLocale()!=null)
{
- doc.addField(artistName, nc.getArtist().getAliasList().getAlias().get(0).getContent());
- break;
+ aliasWithLocales.add(alias.getContent());
}
}
}
+
+ for(String next:aliasWithLocales)
+ {
+ doc.addField(artistName, next);
+ }
}
}
}
Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseGroupIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseGroupIndexTest.java 2013-10-02 10:29:56 UTC (rev 13710)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseGroupIndexTest.java 2013-10-02 10:49:37 UTC (rev 13711)
@@ -372,6 +372,8 @@
tr.next();
assertEquals("kunzstel", tr.term().utf8ToString());
tr.next();
+ assertEquals("kunzstelein", tr.term().utf8ToString());
+ tr.next();
assertEquals("orchestra", tr.term().utf8ToString());
tr.next();
assertEquals("pops", tr.term().utf8ToString());