X-Git-Url: https://scm.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/7403042a0f5519bf9550e7ce22066ec47a0b8225..b48c89e2b2b3426316e49cb1756793b352fe6abf:/catalog.py diff --git a/catalog.py b/catalog.py index da1e4cc..4b925bf 100644 --- a/catalog.py +++ b/catalog.py @@ -31,7 +31,7 @@ class SolrTransactionHook : self.connection.close() class CatalogTool(BaseCatalogTool) : - meta_type = 'Legivoc Catalog' + meta_type = 'Plinn Catalog' security = ClassSecurityInfo() manage_options = (BaseCatalogTool.manage_options[:5] + ({'label' : 'Solr', 'action' : 'manage_solr'},) + @@ -111,24 +111,21 @@ class DelegatedCatalog(Catalog) : Catalog.__init__(self, brains=brains) self.zcat = zcat - def getDelegatedIndexes(self) : - return ('Title', 'Description', 'SearchableText') # <= TODO virer cette ligne - return self.zcat.delegatedIndexes - def delegateSearch(self, query, plan) : ''' retours faux : None signifie : pas de délégation, il faut continuer à interroger les autres index. IISet() vide : pas de résultat lors de la délégation, on peut arrêter la recherche. ''' - indexes = set(plan).intersection(set(self.getDelegatedIndexes())) + indexes = set(query.keys()).intersection(set(self.zcat.delegatedIndexes)) + if not indexes : + return None delegatedQuery = {} for i in indexes : delegatedQuery[i] = query.pop(i) - plan.remove(i) - if not delegatedQuery : - return None - c = SolrConnection('http://localhost:8983/solr') + try : plan.remove(i) + except ValueError : pass + c = SolrConnection(self.zcat.solr_url) q =' AND '.join(['%s:"%s"' % item for item in delegatedQuery.items()]) resp = c.query(q, fields='id', rows=len(self)) c.close()