Ignore:
Timestamp:
29/11/07 10:15:03 (12 years ago)
Author:
lawrence
Message:

Semantic Search support in discovery
(Hopefully this is all the relevant files, my sandbox is in a bit of a
state)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/discovery.py

    r3014 r3069  
    55from ows_server.models import ndgSearch as NS 
    66from ows_server.models.DocumentRetrieve import DocumentRetrieve as DR 
     7from ows_server.models.DocumentRetrieve import ndgVocabPOX as VS 
    78from ows_server.models.DIF import DIF 
    89from ows_server.templates.renderDiscoverySet import renderDiscoverySet 
     
    1213from ows_server.lib.mailer import mailHandler 
    1314from ows_server.models.xmlHandler2 import xmlHandler 
     15debug=0 
    1416 
    1517 
     
    155157        print howmany,hits 
    156158        c.state=DiscoveryState(id,searchString,request.environ,hits,searchConstraints,start,howmany) 
     159        c.querystring=request.environ['QUERY_STRING'] 
    157160        print c.state 
    158161         
     
    202205                 
    203206                c.difs=difs 
    204                 if 'searchString' in self.inputs: 
    205                     c.querystring='searchString=%s&textTarget=%s'%(self.inputs['searchString'],self.inputs['textTarget']) 
    206                 else: 
    207                     c.querystring='' 
     207                 
    208208                session['results']=h.current_url() 
    209209                session.save() 
     
    292292     
    293293    def semantic(self): 
    294         c.constraints=request.environ['QUERY_STRING'] 
     294        self.__setup() 
     295        vs=VS(proxyServer=self.cf.get('DEFAULT','proxyServer')) 
     296        if 'searchString' in self.inputs: 
     297            [broader,narrower]=vs.getRelated(self.inputs['searchString']) 
     298            c.narrower=narrower 
     299            c.broader=broader 
     300            #get a base string for the links to new searches 
     301            if 'start' in self.inputs: del self.inputs['start'] 
     302            if 'howmany' in self.inputs: del self.inputs['howmany'] 
     303            self.inputs['searchString']='###SEARCHSSTRING###' 
     304            q='%s/discovery?'%g.server 
     305            for i in self.inputs: q+='%s=%s&'%(i,self.inputs[i]) 
     306            url=q[0:-1] 
     307            # and now build the links  
     308            c.narrower=[] 
     309            c.broader=[] 
     310            for i in narrower: 
     311                c.narrower.append((i,url.replace('###SEARCHSSTRING###',i))) 
     312            for i in broader: 
     313                c.broader.append((i,url.replace('###SEARCHSSTRING###',i))) 
     314        else: 
     315            broader,narrower=[],[] 
     316         
    295317        return render_response('semantic',fragment=True) 
    296318     
Note: See TracChangeset for help on using the changeset viewer.