1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#!/usr/bin/python
import os
import sys
import xapian
if __name__ == "__main__":
if len(sys.argv) > 1:
channel_name = sys.argv[1]
else:
channel_name = "Ubuntu"
xapian_base_path = "/var/cache/software-center"
pathname = os.path.join(xapian_base_path, "xapian")
db = xapian.Database(pathname)
enquire = xapian.Enquire(db)
query = xapian.Query("XOL"+channel_name)
enquire.set_query(query)
matches = enquire.get_mset(0, db.get_doccount())
print "Matches: %s" % len(matches)
apps = set()
for m in matches:
doc = m.document
appname = doc.get_data()
apps.add(appname)
#for t in doc.termlist():
# print "'%s': %s (%s); " % (t.term, t.wdf, t.termfreq),
#print "\n"
print ";".join(sorted(apps))
for i in db.postlist(""):
doc = db.get_document(i.docid)
for t in doc.termlist():
if t.term.startswith("XOL"):
print "doc: '%s', term: '%s'" % (doc.get_data(), t.term)
|