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)