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