ToDoList
Prior to 0.20
- Clean up tutorial section.
- Review all argument lists and change them to be either a single arg or labeled params.
- Figure out what goes wrong when we switch SortExRun over to Nat.
- Add OBJ_ALLOCATE and OBJ_DESTROY macros which default to malloc and free normally, but count objects when compiled under KINO_DEBUG. Use these to detect memory leaks during ordinary development, rather than after the fact with Valgrind.
- Make TermInfo hold arbitrary data?
- Don't print TermVectors if there are no vectorized fields.
- Eliminate the present ViewCharBuf. Rename ZombieCharBuf to ViewCharBuf. Create MortalViewCharBuf.
- Auto-generate POD for each class indicating inheritance chain and inherited methods.
- Add extensions() metadata(), and file_format_revision() to SegDataWriter and subclasses.
- If possible, refactor DocVector so that it's possible to extract start_offsets and end_offsets, given positions.
- Fix SegPList_Skip_To.
- Change over to mmap.
- Flexible Indexing.
- Factor DeletionsWriter out of IndexReader.
- Fix refcounting situation for VArray and Hash storing functions.
- Disentangle or document the mortalizing done by VTable_singleton.
- Update Scorer_Skip_To docs to be in line with PList_Skip_To.
- Generate callbacks only for methods which are bound, not for "public" methods.
- Whittle down make_getters/make_setters in favor of bind_methods.
- Add factory methods to QueryParser.
- Fix glitch in Highlighter WRT selecting frag with no keywords.
- Move POD out from all remaining modules so that the presentation on search.cpan.org is clean.
- Add a NotStemmed content field to USConSchema to accommodate PrefixQuery.
- Add a section describing to_string, equals to CustomQuery.
- Move Architecture below Schema
- Refactor SegDataWriter_Add_Segment implementations.
- Refactor SegReader_Max_Docs and rename to Doc_Max.
- Bust out Snapshot into Snapshot, SnapWriter, and SnapReader.
- Remove fspecs arg from Snapshot_Make_New_Segment.
- Rename Snapshot_Size to Snapshot_Num_Segments.
- Messed up skip test in read-locking test file.
- Port KinoSearch::Test to C.
- Deploy VA_Get_Size.
- Rename Fetch_FSpec to Fetch_Spec. Make other similar changes elsewhere.
- Give LCNormalizer a language param.
- Rename Native to Host.
- Eliminate Inversion_Append, replace with Push.
- Seg_Store_Metadata sould take a decremented arg.
Cleanup
- Rename DelDocs_Delete_PostingList DelDocs_Delete_Posting_List.
- Update comment style in scattered files (e.g. benchmarking files).
- Move REFCOUNT_DEC calls around to make for easier debugging.
- Make comments into docucomments in VArray.bp and maybe elsewhere.
After 0.20
- Write a tutorial or possibly a module about how to provide rapid updates using a combination of queueing and RAMFolder.
- Port test suite to C.
Back Burner
- Change documentation linking syntax from POD-style to JavaDoc-style.
- Write KSx::Simple::HTML
- Write C-level tests for StrHelp_valid_utf8.
- Make it possible to remove fields from a Schema and an Index.
- Add comment about verification performed by build_args_hash in XSHelper.
- Add comment about analyze_batch being abstract.
- Kill fflush, since KinoSearch's IO classes do their own buffering.
- Write tests for merge4 and merge8 in KinoSearch::Util::MSort
- Reimplement TermVector code using a Stepper subclass.
- Rename sub_plist to seg_plist in MultiPostingList
- Add max_bytes arg to Post_Bulk_Read
- Eliminate SortExRun_Prepare_Slice.
- Forbid inheritance of all Foo_Clone() methods.
- Eliminate Scorer_Next() in favor of Scorer_Skip_To() ?
- Rename fspecs var in Schema to "fields" ?
- Add a dump function to Obj, which defaults to To_String. (a la Prototype's Object.inspect())
- Make DocReader subclassable.
- Add custom comparison functions to FieldSpec.
- Fix delete_by_term behavior after add_doc is called in InvIndexer.
- Implement SegInfo_Fetch_Field
- Verify that cooperating machines use similar floats for SearchServer/SearchClient.
- Distinguish between const objects and regular objects in TypeMap.
- Optimize LexReader_fetch_term_info for sequential access a la Lucene TermInfosReader.get(term).