diff --git a/server/djrandom/frontend/search.py b/server/djrandom/frontend/search.py
index 28f621911f18853eb6aae327968821d3bbb254f9..8d4575282cf5d87e4893aca2c5f8f3df232bb36b 100644
--- a/server/djrandom/frontend/search.py
+++ b/server/djrandom/frontend/search.py
@@ -8,17 +8,25 @@ class Searcher(object):
         self.solr = solr.Solr(solr_url, timeout=30)
 
     def search(self, qstr, n=10, partial=False):
-        results = self.solr.select(q=qstr, sort='score desc',
-                                   fields='score,id', start=0, rows=n)
+        try:
+            results = self.solr.select(q=qstr, sort='score desc',
+                                       fields='score,id', start=0, rows=n)
+        except solr.SolrException, e:
+            log.error('SOLR exception (query="%s"): %s' % (
+                qstr, e))
         for doc in results.results:
             yield doc['score'], doc['id']
 
     def more_like_these(self, hashes, n=5):
         """Return a set of hashes that are related to the ones provided."""
-        query_str = ' OR '.join('(id:%s)' % x for x in hashes)
-        results = self.solr.select(
-            q=query_str, fields='score,id', rows=n,
-            mlt='true', mlt_fl='text', mlt_mindf=1, mlt_mintf=1)
+        query_str = ' OR '.join('(id:%s)' % x for x in hashes if x)
+        try:
+            results = self.solr.select(
+                q=query_str, fields='score,id', rows=n,
+                mlt='true', mlt_fl='text', mlt_mindf=1, mlt_mintf=1)
+        except solr.SolrException, e:
+            log.error('SOLR exception (query="%s"): %s' % (
+                query_str, e))
 
         # Parse and uniq-ify the results.
         hashes_set = set(hashes)