* add an API to search by string

This commit is contained in:
Eray Özkural
2005-12-12 22:29:13 +00:00
parent 6bd84b5ec8
commit 29d904caa7
3 changed files with 16 additions and 2 deletions
+10
View File
@@ -243,6 +243,16 @@ def info_name(package_name):
else:
raise Error(_('Package %s not found') % package_name)
def search_package_terms(terms, lang = None):
if not lang:
lang = pisi.pxml.autoxml.LocalText.get_lang()
def search(self, id, terms):
return pisi.search.query(id, lang, terms)
r1 = pisi.search.query_terms('summary', lang, terms)
r2 = pisi.search.query_terms('description', lang, terms)
r = r1.union(r2)
return r
def search_package(terms, lang = None):
if not lang:
lang = pisi.pxml.autoxml.LocalText.get_lang()
+1 -1
View File
@@ -1007,7 +1007,7 @@ Finds a package in repository containing specified search terms
self.help()
return
r = pisi.api.search_package(self.args, self.get_lang())
r = pisi.api.search_package_terms(self.args, self.get_lang())
for pkg in r:
self.printinfo_package(pkg)
+5 -1
View File
@@ -54,7 +54,11 @@ def add_doc(id, lang, docid, str, txn = None):
def remove_doc(id, lang, docid, str, txn = None):
ctx.invidx[id][lang].remove_doc(docid, txn)
def query(id, lang, terms, txn = None):
def query_terms(id, lang, terms, txn = None):
import preprocess as p
terms = map(lambda x: p.lower(lang, x), terms)
return ctx.invidx[id][lang].query(terms, txn)
def query(id, lang, str, txn = None):
terms = preprocess(lang, str)
return query(id, lang, terms, txn)