Mercurial > hg > zopeSolr
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(): |