Priority Difficulty Area Task Release Owner
Update the PLATFORMS file * James
make sure the non-autogenerated docs are kept up-to-date * James
High Finish off loose ends from OmSettings removal. These are: weighting schemes not working with remote backend; stub databases; machinery in InMemory backend to allow multierrhandler1 to work; sort out final names for factory functions; maybe replace boolean flags for expand with bit flags |-ed together (so they are named in calls and code is clearer). 0.7 Olly
High Replace one remaining use of OmSettings (to pass parameters to the matcher). The arguments for OmSettings are not as compelling as we originally thought, and it has definite drawbacks - one major one being that there's no easy way to check for typos which can lead to users of the library spending hours trying to sort out a bug which is just a typo in an OmSettings value. Also remove docs/omsettings. 0.7 Olly
High 3 API Put Om into its own namespace, to ensure lack of symbol conflicts. 0.7 Olly
High 4 General Make backends / weighting schemes / indexer modules register themselves automatically. At runtime / linktime? (ie, replace current conditional compilation scheme) - actually, we can use sub-classing and factory classes to do this more cleanly. 0.7
Medium Fix up examples and make sure they are actually instructive. Add a comment to each describing what it demonstrates. I've made a start. delve is a reasonable example. msearch probably needs simplifying to just do a probabilistic search, or to use OmQueryParser. Add example to copy quartz database as "Full compaction with revision 1" (and perhaps delete/rename the bitmaps) as described in the quartz docs. This should produce a small fast database optimised for fast searching. 0.8 Olly
Medium indexgraph -> extra (needs to build as a support library?) [James expressed an interest in this as dbtools needs it] 0.8 James
Medium 3 API Provide fake term (empty termname) which indexes all documents, thus providing a clean way to iterate through them. This would be used for a real "NOT" operator. Olly has a patch which mostly implements this for the InMemory backend. 0.8 Olly
Medium 3 Databases Change all internal references to net/network backend to remote backend (in step with external naming) 0.8
Medium Documentation Finish reading through generated docs to ensure they read well in collated form. 0.8 Olly
Medium 2 General Check for zero byte cleanness wherever strings are used. There are a number of c_str()s in the code, but I believe all in the core library (excluding the bindings) are harmless at 2002-04-29. There may be other zero byte issues though. xapian-applications/dbtools also uses c_str() where it should probably use data() and length(). 0.8
Medium 2 OmQuery Move all serialisation of OmQuery into OmQuery (out of socketcommon.cc and localmatch): modification of omquery requires changes in 3 separate parts of the code, at present. 0.8
Medium 3 Quartz Make quartz database autoflush when enough changes have been performed based on the memory used up as a proportion of that available, rather than simply when a count of changes is reached. Remove hardcoded count of 1000 changes. 0.8
Medium 5 Documentation Ensure that API documentation covers entirety of API (i.e. that all methods and classes in the API have documentation comments) -- see doxygen generated file docs/doxygen_api_warnings for a list of undocumented methods. Then read through generated API docs, and rewrite doc comments to improve clarity and make them more coherent. 1.0
Medium 4 General Allow setting of the document length in OmDocument? (Currently defined to be the sum of the wdfs). 1.0
Medium 5 Porting Produce Microsoft Windows version, probably cross-compiling to mingw. 1.0 James
Medium 2 Quartz Ensure that quartz databases don't have a problem if there is no positional information entry available for a term / document combination. 1.0
Low 3 Documentation Add notes about catching exceptions throughout userman, particularly in examples (eg, search engine example) 1.0
.deb built, control files via autoconf 1.0 Olly