# HG changeset patch # User dwinter # Date 1369748909 -7200 # Node ID 3cb69c6820bd3cf8771310aa4ca8a57243330d5d # Parent c97b5cbcda52aeba40ea9b21b1438b2f7b38f93c bug in query fixed for limits diff -r c97b5cbcda52 -r 3cb69c6820bd zopeSolr.py --- a/zopeSolr.py Tue May 28 13:46:21 2013 +0200 +++ b/zopeSolr.py Tue May 28 15:48:29 2013 +0200 @@ -243,7 +243,7 @@ #dokumentiert. Highlighting selbst wird in sorlconfig.xml konfiguriert. #return ein Queryobjet, zur eigentlichen Suche muss darauf noch execute ausgeführt werden. - def prepareSearch(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None,facetFields_limit=None): + def prepareSearch(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None): "search solr" @@ -414,11 +414,8 @@ # res = res.facet_by(facet) - - if facetFields_limit: - res = res.facet_by(facetFields,limit=facetFields_limit) - else: - res = res.facet_by(facetFields) + + res = res.facet_by(facetFields) #res=res.paginate(start=start, rows=rows).highlight("main_content") @@ -460,9 +457,22 @@ def search(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None,facetFields_limit=None): - res=self.prepareSearch(solrQuery,facetFields,start,rows,facetSearch,sortFacets,orSearch=orSearch,facetFields_limit=facetFields_limit) - response= res.execute() - + res=self.prepareSearch(solrQuery,facetFields,start,rows,facetSearch,sortFacets,orSearch=orSearch) + #response= res.execute() + + opt = res.options(); + + + + if facetFields_limit: + + + for field,limit in facetFields_limit.items(): + opt["f.%s.facet.limit"%field]=limit + + + response= self._v_solr.search( **opt) + #speichere faceted fields if len(facetFields)>0: facetedFields=response.facet_counts.facet_fields