Mercurial > hg > zopeSolr
changeset 7:3cb69c6820bd
bug in query fixed for limits
author | dwinter |
---|---|
date | Tue, 28 May 2013 15:48:29 +0200 |
parents | c97b5cbcda52 |
children | a8f16569d1a6 |
files | zopeSolr.py |
diffstat | 1 files changed, 19 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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