[mb-commits] r9895 - search_server/trunk/lib

root at musicbrainz.org root at musicbrainz.org
Sun Jun 29 09:21:49 UTC 2008


Author: robert
Date: 2008-06-29 09:21:49 +0000 (Sun, 29 Jun 2008)
New Revision: 9895

Modified:
   search_server/trunk/lib/annotationsearch.py
   search_server/trunk/lib/artistsearch.py
   search_server/trunk/lib/labelsearch.py
   search_server/trunk/lib/releasesearch.py
   search_server/trunk/lib/search.py
   search_server/trunk/lib/tracksearch.py
Log:
make the layout/look of the indexed search similar to the direct search.


Modified: search_server/trunk/lib/annotationsearch.py
===================================================================
--- search_server/trunk/lib/annotationsearch.py	2008-06-29 08:30:56 UTC (rev 9894)
+++ search_server/trunk/lib/annotationsearch.py	2008-06-29 09:21:49 UTC (rev 9895)
@@ -54,7 +54,7 @@
            out += u'<tr class="searchresults%s">' % search.oddeven[i % 2]
            out += u"<td>%d</td>" % doc['_score']
            out += u"<td>%s</td>" % self.escape(type)
-           out += u"<td><a href=\"/%s/%s.html\">%s</a></td>" % (self.escape(type), 
+           out += u"<td><span class=\"link%s-icon\"><a href=\"/%s/%s.html\">%s</a></td>" % (self.escape(type), self.escape(type),
                                                                self.escape(mbid), self.escape(name))
 
            text = text.replace(u"\\n", u"\n");

Modified: search_server/trunk/lib/artistsearch.py
===================================================================
--- search_server/trunk/lib/artistsearch.py	2008-06-29 08:30:56 UTC (rev 9894)
+++ search_server/trunk/lib/artistsearch.py	2008-06-29 09:21:49 UTC (rev 9895)
@@ -73,7 +73,7 @@
 
            out += u'<tr class="searchresults%s">' % search.oddeven[i % 2]
            out += u"<td>%d</td>" % doc['_score']
-           out += u"<td><a href=\"/artist/%s.html\">%s</a>" % \
+           out += u"<td><span class=\"linkartist-icon\"><a href=\"/artist/%s.html\">%s</a></span>" % \
                    (self.escape(arid), self.escape(artist))
            if comment: out += " (%s)" % self.escape(comment)
            out += u"</td><td>%s</td>" % self.escape(sortname)

Modified: search_server/trunk/lib/labelsearch.py
===================================================================
--- search_server/trunk/lib/labelsearch.py	2008-06-29 08:30:56 UTC (rev 9894)
+++ search_server/trunk/lib/labelsearch.py	2008-06-29 09:21:49 UTC (rev 9895)
@@ -85,7 +85,7 @@
 
            out += u'<tr class="searchresults%s">' % search.oddeven[i % 2]
            out += u"<td>%d</td>" % doc['_score']
-           out += u"<td><a href=\"/label/%s.html\">%s</a>" % \
+           out += u"<td><span class=\"linklabel-icon\"><a href=\"/label/%s.html\">%s</a></span>" % \
                    (self.escape(laid), self.escape(label))
            if comment: out += " (%s)" % self.escape(comment)
            out += u"</td><td>%s</td>" % self.escape(sortname)

Modified: search_server/trunk/lib/releasesearch.py
===================================================================
--- search_server/trunk/lib/releasesearch.py	2008-06-29 08:30:56 UTC (rev 9894)
+++ search_server/trunk/lib/releasesearch.py	2008-06-29 09:21:49 UTC (rev 9895)
@@ -65,8 +65,9 @@
        rel = self.rel
 
        out = u'<div><table class="searchresults">'
-       out += u'<tr class="searchresultsheader"><td>Score</td><td>Release</td><td>Artist</td><td>Tracks</td>'
-       out += u'<td style="white-space: nowrap">CD ids</td><td>Date</td><td>Type</td><td style="white-space: nowrap">Lang/script</td>'
+       out += u'<tr class="searchresultsheader"><td>Score</td><td>Artst</td><td style="white-space: nowrap">Release title</td>'
+       out += u'<td style="white-space: nowrap">Tracks</td><td style="white-space: nowrap">CD ids</td>'
+       out += u'<td>Released:</td><td>Type</td><td style="white-space: nowrap">Lang/script</td>'
        if self.tport: 
            out += u"<td>Tagger</td>"
        elif rel: 
@@ -101,11 +102,12 @@
 
            out += u'<tr class="searchresults%s">' % self.escape(search.oddeven[i % 2])
            out += u"<td>%d</td>" % doc['_score']
-           out += u"<td><a href=\"/release/%s.html\">%s</a></td>" % \
+           out += u"<td><span class=\"linkrelease-icon\"><a href=\"/artist/%s.html\">%s</a></td>" % \
+                  (self.escape(arid), self.escape(artist))
+           out += u"<td><span class=\"linkrelease-icon\"><a href=\"/release/%s.html\">%s</a></span></td>" % \
                   (self.escape(reid), self.escape(album))
-           out += u"<td><a href=\"/artist/%s.html\">%s</a></td>" % \
-                  (self.escape(arid), self.escape(artist))
-           out += u'<td align="center">%s</td><td align="center">%s</td>' % (self.escape(tracks), self.escape(cdids))
+           out += u'<td align="center">%s <img src="/images/notes.gif" alt="Tracks"/></td>' % self.escape(tracks)
+           out += u'<td align="center">%s <img src="/images/cd.gif" alt="Disc IDs"/></td>' % self.escape(cdids)
            out += u"<td>"
            for date, country in zip(dates, countries):
                out += "%s %s " % (self.escape(country), self.escape(date))

Modified: search_server/trunk/lib/search.py
===================================================================
--- search_server/trunk/lib/search.py	2008-06-29 08:30:56 UTC (rev 9894)
+++ search_server/trunk/lib/search.py	2008-06-29 09:21:49 UTC (rev 9895)
@@ -81,16 +81,15 @@
 	    text = str(msg)
             raise NoSuchIndexError(text)
 
-        self.weight = xapian.BM25Weight(0, 0, 1, .1, .5);
         self.en = enquire = xapian.Enquire(self.index)
+        self.weight = xapian.BM25Weight(0, 0, 1, .5, .5);
         self.en.set_weighting_scheme(self.weight)
-        #self.en.set_docid_order(xapian.Enquire.DONT_CARE)
+        self.en.set_docid_order(xapian.Enquire.DONT_CARE)
         self.en.set_sort_by_relevance_then_value(0, False)
 
         self.qp = xapian.QueryParser()
         self.qp.set_database(self.index)
         self.qp.set_stemming_strategy(xapian.QueryParser.STEM_NONE)
-	self.qp.set_default_op(xapian.Query.OP_AND)
 
     def close(self):
 	'''
@@ -214,6 +213,14 @@
 
 	return u''.join(bits)
 
+
+    def removeApostrophe(self, query):
+	'''
+	Xapian considers ' as part of a word in order to not split things like "don't" and generate a bunch
+	of t fragments. I can see that for text, but for searching names and titles, no so much.
+	'''
+	return query.replace(u"'", u'')
+
     def removeDashesFromMBIDs(self, query):
 
 	bits = []
@@ -245,6 +252,7 @@
             query = self.mangleQuery(query)
             query = self.removeTermBoosting(query)
             query = self.removeDots(query)
+            query = self.removeApostrophe(query)
 	    query = self.removeDashesFromMBIDs(query)
             query = unac.unac_string(query)
             query = addSpacesToIdeographicStrings(query)
@@ -260,14 +268,14 @@
 				              self.defaultField)
         except xapian.Error, msg:
 	    text = str(msg)
-	    raise QueryError(text.encode('utf-8'))
+	    raise QueryError(text)
 
         try:
 	    self.en.set_query(parsedQuery)
 	    matches = self.en.get_mset(offset, maxHits)
         except Exception, msg:
             text = str(msg)
-            raise SearchError(text.encode('utf-8'))
+            raise SearchError(text)
 
         if not matches.get_matches_estimated(): raise NoResultsError()
 

Modified: search_server/trunk/lib/tracksearch.py
===================================================================
--- search_server/trunk/lib/tracksearch.py	2008-06-29 08:30:56 UTC (rev 9894)
+++ search_server/trunk/lib/tracksearch.py	2008-06-29 09:21:49 UTC (rev 9895)
@@ -45,7 +45,7 @@
    def __init__(self, index):
        search.TextSearch.__init__(self, index)
        self.setDefaultField('track')
-       self.setPrefixes(('artist', 'arid', 'reid', 'trid', 'release', 'track', 'tnum', 'tracks', 'dur', 'type'))
+       self.setPrefixes(('artist', 'arid', 'reid', 'trid', 'release', 'track', 'tnum', 'tracks', 'dur', 'qdur', 'type'))
 
    def mangleQuery(self, query):
        query = re.sub("type:(\d+)", replaceType, query)
@@ -59,7 +59,8 @@
        rel = self.rel
        
        out = u'<div><table class="searchresults" id="TagLookupTrackResults">'
-       out += u'<tr class="searchresultsheader"><td>Score</td><td>Num</td><td>Track</td><td>Duration</td><td>Type</td><td>Artist</td><td>Release</td><td>Tracks</td>'
+       out += u'<tr class="searchresultsheader"><td>Score</td><td>Artist</td>'
+       out += u'<td>Release</td><td>Track</td><td>Num</td><td>Length</td><td>Tracks</td><td>Type</td>'
        if self.tport or self.mbt: 
            out += u"<td>Tagger</td>"
        elif rel: 
@@ -79,21 +80,21 @@
 
            out += u'<tr class="searchresults%s">' % search.oddeven[i % 2]
            out += u"<td>%d</td>" % doc['_score']
+           out += u'<td><span class="linkartist-icon"><a href=\"/artist/%s.html\">%s</a></span></td>' % \
+                  (self.escape(arid), self.escape(artist))
+           out += u'<td><span class="linkrelease-icon"><a href=\"/album/%s.html\">%s</a></span></td>' % \
+                  (self.escape(reid), self.escape(album))
+           out += u'<td><span class="linktrack-icon"><a href=\"/track/%s.html\">%s</a></span></td>' % \
+                  (self.escape(trid), self.escape(track))
            out += u'<td align="center">%s</td>' % self.escape(tnum)
-           out += u"<td><a href=\"/track/%s.html\">%s</a></td>" % \
-                  (self.escape(trid), self.escape(track))
            out += u'<td align="center" class="tlen %s">' % self.getTrackLenClass(dur)
            if dur:
                out += u'%d:%02d' % (dur / 60000, (dur % 60000) / 1000)
            else:
                out += u"&nbsp;" 
            out += u"</td>"
+           out += u'<td align="center">%d</td>' % tracks
            out += u"<td>%s</td>" % self.escape(type)
-           out += u"<td><a href=\"/artist/%s.html\">%s</a></td>" % \
-                  (self.escape(arid), self.escape(artist))
-           out += u"<td><a href=\"/album/%s.html\">%s</a></td>" % \
-                  (self.escape(reid), self.escape(album))
-           out += u'<td align="center">%d</td>' % tracks
 
            if self.tport or self.mbt:
                out += u'<td style="white-space: nowrap">'




More information about the MusicBrainz-commits mailing list