comparison zopeSolr.py @ 6:c97b5cbcda52

random search in solr
author dwinter
date Tue, 28 May 2013 13:46:21 +0200
parents f695be8f4f34
children 3cb69c6820bd
comparison
equal deleted inserted replaced
5:f695be8f4f34 6:c97b5cbcda52
12 import urlparse 12 import urlparse
13 import urllib 13 import urllib
14 import re 14 import re
15 import xml.etree.ElementTree as ET 15 import xml.etree.ElementTree as ET
16 import json 16 import json
17 import random
17 18
18 #Worte die nicht in der Termliste angezeigt werden sollen #TODO: make this configurable 19 #Worte die nicht in der Termliste angezeigt werden sollen #TODO: make this configurable
19 20
20 STOPLIST={'main_content':['forward','drucken','history','science','part','publications','projects', 21 STOPLIST={'main_content':['forward','drucken','history','science','part','publications','projects',
21 'project','new','geschichte','institute','related','boltzmannstraße','14195'], 22 'project','new','geschichte','institute','related','boltzmannstraße','14195'],
40 return pt 41 return pt
41 42
42 43
43 44
44 class ZopeSolr(SimpleItem): 45 class ZopeSolr(SimpleItem):
45 46
46 47
47 meta_type="ZopeSolr" 48 meta_type="ZopeSolr"
48 49
49 manage_options= ({'label':'Main Config','action': 'changeMain'},) + SimpleItem.manage_options 50 manage_options= ({'label':'Main Config','action': 'changeMain'},) + SimpleItem.manage_options
50 51
58 59
59 def connect(self): 60 def connect(self):
60 self._v_solr=sunburnt.SolrInterface(url=self.solrURL) 61 self._v_solr=sunburnt.SolrInterface(url=self.solrURL)
61 62
62 63
64 def getRandom(self,number=3,field="title_s"):
65
66 """hole zufaellige eintraege"""
67
68
69 if not getattr(self,'_v_solr_',None):
70 self.connect()
71
72 #http://localhost:8983/solr/mpiwgSources/select/?q=*:*&sort=random_12xs34%20desc&rows=1&facet=false
73
74
75 random.seed()
76 rand = random.randrange(300000)
77
78 results = self._v_solr.query("*.*").sort_by("-random_%s"%rand).paginate(start=0, rows=number).execute()
79
80 return results
81
63 #erzeuge den link auf die fulltext display version des bildviewers 82 #erzeuge den link auf die fulltext display version des bildviewers
64 def createFullTextLink(self,page,facetSerch,search): 83 def createFullTextLink(self,page,facetSerch,search):
65 84
66 fqs=[] 85 fqs=[]
67 for key in facetSerch.keys(): 86 for key in facetSerch.keys():