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)
|