#!/usr/bin/python
# coding=UTF-8

import xapian

db = xapian.WritableDatabase("/tmp/test", xapian.DB_CREATE_OR_OVERWRITE)

doc = xapian.Document()
doc.add_term(u"♥".encode("UTF-8"));
db.add_document(doc)

doc = xapian.Document()
doc.add_term(u"città".encode("UTF-8"));
db.add_document(doc)

db.flush()

db = xapian.Database("/tmp/test")
enquire = xapian.Enquire(db)
enquire.set_query(xapian.Query(""))
rset = xapian.RSet()
for m in enquire.get_mset(0, 2):
    rset.add_document(m[xapian.MSET_DID])

class Filter(xapian.ExpandDecider):
    def __call__(self, term):
        return term.startswith(u"c")

for res in enquire.get_eset(30, rset, Filter()):
    print repr(res.term)
