* add an API to search by string
This commit is contained in:
+10
@@ -243,6 +243,16 @@ def info_name(package_name):
|
|||||||
else:
|
else:
|
||||||
raise Error(_('Package %s not found') % package_name)
|
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):
|
def search_package(terms, lang = None):
|
||||||
if not lang:
|
if not lang:
|
||||||
lang = pisi.pxml.autoxml.LocalText.get_lang()
|
lang = pisi.pxml.autoxml.LocalText.get_lang()
|
||||||
|
|||||||
@@ -1007,7 +1007,7 @@ Finds a package in repository containing specified search terms
|
|||||||
self.help()
|
self.help()
|
||||||
return
|
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:
|
for pkg in r:
|
||||||
self.printinfo_package(pkg)
|
self.printinfo_package(pkg)
|
||||||
|
|||||||
@@ -54,7 +54,11 @@ def add_doc(id, lang, docid, str, txn = None):
|
|||||||
def remove_doc(id, lang, docid, str, txn = None):
|
def remove_doc(id, lang, docid, str, txn = None):
|
||||||
ctx.invidx[id][lang].remove_doc(docid, txn)
|
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
|
import preprocess as p
|
||||||
terms = map(lambda x: p.lower(lang, x), terms)
|
terms = map(lambda x: p.lower(lang, x), terms)
|
||||||
return ctx.invidx[id][lang].query(terms, txn)
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user