Whoosh 0.3 release notesΒΆ

  • Major improvements to reading/writing of postings and query performance.

  • Changed default post limit (run size) from 4 MB to 32 MB.

  • Finished migrating backend-specific code into whoosh.filedb package.

  • Moved formats from whoosh.fields module into new whoosh.formats module.

  • DocReader and TermReader classes combined into new IndexReader interface. You can get an IndexReader implementation by calling Index.reader(). Searcher is now a wrapper around an IndexReader.

  • Range query object changed, with new signature and new syntax in the default query parser. Now you can use [start TO end] in the query parser for an inclusive range, and {start TO end} for an exclusive range. You can also mix the delimiters, for example [start TO end} for a range with an inclusive start but exclusive end term.

  • Added experimental DATETIME field type lets you pass a datetime.datetime object as a field value to add_document:

    from whoosh.fields import Schema, ID, DATETIME
    from whoosh.filedb.filestore import RamStorage
    from datetime import datetime
    schema = Schema(id=ID, date=DATETIME)
    storage = RamStorage()
    ix = storage.create_index(schema)
    w = ix.writer()
    w.add_document(id=u"A", date=datetime.now())

    Internally, the DATETIME field indexes the datetime object as text using the format (4 digit year + 2 digit month + 2 digit day + ‘T’ + 2 digit hour + 2 digit minute + 2 digit second + 6 digit microsecond), for example 20090817T160203109000.

  • The default query parser now lets you use quoted strings in prefix and range queries, e.g. ["2009-05" TO "2009-12"], "alfa/bravo"*, making it easier to work with terms containing special characters.

  • DocReader.vector_as(docnum, fieldid, astype) is now IndexReader.vector_as(astype, docnum, fieldid) (i.e. the astype argument has moved from the last to the first argument), e.g. v = ixreader.vector_as("frequency", 102, "content").

  • Added whoosh.support.charset for translating Sphinx charset table files.

  • Added whoosh.analysis.CharsetTokenizer and CharsetFilter to enable case and accent folding.

  • Added experimental whoosh.ramdb in-memory backend.

  • Added experimental whoosh.query.FuzzyTerm query type.

  • Added whoosh.lang.wordnet module containing Thesaurus object for using WordNet synonym database.