Mercurial > hg > zopeSolr
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 |