comparison zopeSolr.py @ 5:f695be8f4f34

Incomplete - # 77: Sources: Cloud https://it-dev.mpiwg-berlin.mpg.de/tracs/webpage/ticket/77 added facetFields_limit to search parameters
author dwinter
date Tue, 28 May 2013 11:13:40 +0200
parents 10733d367831
children c97b5cbcda52
comparison
equal deleted inserted replaced
4:10733d367831 5:f695be8f4f34
222 # http://opensource.timetric.com/sunburnt/queryingsolr.html#highlighting 222 # http://opensource.timetric.com/sunburnt/queryingsolr.html#highlighting
223 # und http://opensource.timetric.com/sunburnt/queryingsolr.html#faceting 223 # und http://opensource.timetric.com/sunburnt/queryingsolr.html#faceting
224 #dokumentiert. Highlighting selbst wird in sorlconfig.xml konfiguriert. 224 #dokumentiert. Highlighting selbst wird in sorlconfig.xml konfiguriert.
225 #return ein Queryobjet, zur eigentlichen Suche muss darauf noch execute ausgeführt werden. 225 #return ein Queryobjet, zur eigentlichen Suche muss darauf noch execute ausgeführt werden.
226 226
227 def prepareSearch(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None): 227 def prepareSearch(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None,facetFields_limit=None):
228 "search solr" 228 "search solr"
229 229
230 230
231 ranges={} 231 ranges={}
232 ## deal with a form 232 ## deal with a form
392 #wenn facetField existieren dann rufe facetierung auf 392 #wenn facetField existieren dann rufe facetierung auf
393 if len(facetFields)>0: 393 if len(facetFields)>0:
394 #for facet in facetFields: 394 #for facet in facetFields:
395 395
396 # res = res.facet_by(facet) 396 # res = res.facet_by(facet)
397 res = res.facet_by(facetFields) 397
398
399 if facetFields_limit:
400 res = res.facet_by(facetFields,limit=facetFields_limit)
401 else:
402 res = res.facet_by(facetFields)
398 403
399 #res=res.paginate(start=start, rows=rows).highlight("main_content") 404 #res=res.paginate(start=start, rows=rows).highlight("main_content")
400 405
401 res=res.paginate(start=start, rows=rows) 406 res=res.paginate(start=start, rows=rows)
402 407
432 return "&".join(retArray); 437 return "&".join(retArray);
433 #für die parameter @see prepareSearch 438 #für die parameter @see prepareSearch
434 #erzeugt eine Suchabfrage und führt diese aus. 439 #erzeugt eine Suchabfrage und führt diese aus.
435 #return {"result":response.result, "hl":response.highlighting,"facetFields":facetedFields} 440 #return {"result":response.result, "hl":response.highlighting,"facetFields":facetedFields}
436 441
437 def search(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None): 442 def search(self,solrQuery,facetFields=[],start=0,rows=10,facetSearch=None,sortFacets=True,orSearch=None,facetFields_limit=None):
438 443
439 res=self.prepareSearch(solrQuery,facetFields,start,rows,facetSearch,sortFacets,orSearch=orSearch) 444 res=self.prepareSearch(solrQuery,facetFields,start,rows,facetSearch,sortFacets,orSearch=orSearch,facetFields_limit=facetFields_limit)
440 response= res.execute() 445 response= res.execute()
441 446
442 #speichere faceted fields 447 #speichere faceted fields
443 if len(facetFields)>0: 448 if len(facetFields)>0:
444 facetedFields=response.facet_counts.facet_fields 449 facetedFields=response.facet_counts.facet_fields