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