Priority Difficulty Area Task Release Owner
Update the PLATFORMS file * James
make sure the non-autogenerated docs are kept up-to-date * James
Low Replace all uses of OmSettings. 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. Another argument for it was to allow passing values to user weighting objects, etc, but I think it's best just to implement these with a clone() method, and pass an example one in. And we might as well make built-in weighting objects work the same way rather than being a special case. Backends can be done similarly, though an explicit factory is needed as there's more than one class to build. Also remove docs/omsettings. 0.7 Olly
Low 4 API Allow custom weighting functions. 0.7
Low 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 3 API Implement methods to iterate through all the documents in the database, probably by making the empty term index all documents (or rather act as if it does). Have 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 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
Low 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
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
indexgraph -> extra (needs to build as a support library?) [James expressed an interest in this as dbtools needs it] 0.8 James
Documentation Finish reading through generated docs to ensure they read well in collated form. 0.8 Olly
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