Ticket #181 (new enhancement)

Opened 17 months ago

Last modified 5 months ago

Optional Termlist Table

Reported by: olly Owned by: nobody
Priority: normal Milestone: 1.1.0
Component: Backend-Chert Version: SVN trunk
Severity: minor Keywords:
Cc: richard Blocked By:
Operating System: All Blocking:

Description (last modified by richard) (diff)

The termlist table should be optional - without it, documents can't be deleted or replaced, and query expansion couldn't work, but most other things could be made to work.

Things which will now work:

  • Database::alldocs_begin() - no longer uses the termlist.
  • Database::get_doclength() - uses the document lengths stored in the postlist.

Things which currently use it:

  • Determining the percentage scores when the top document doesn't match all the query terms.

Things which wouldn't work:

  • WritableDatabase::delete_document()
  • WritableDatabase::replace_document() if the document exists already.
  • Database::termlist_begin()
  • Document::termlist_begin()
  • Document::termlist_count()
  • Enquire::get_eset()

Change History

Changed 17 months ago by olly

  • cc richard@… added
  • status changed from new to assigned
  • blocking set to 120

No ABI changes, and existing flint database remain valid, so could be done in 1.0.x.

Changed 14 months ago by richard

  • owner changed from richard to nobody
  • status changed from assigned to new

I have no plans to work on this, so assigning to nobody.

Changed 14 months ago by trac

  • platform set to All

Changed 12 months ago by richard

Currently, get_mset() uses the termlist for assigning percentages. This could be worked around by keeping track of which terms matched the current highest-relevance msetitem (actually, it would probably be easiest to track which Xapian::Weight::Internal objects were used for the best msetitem, since that will work for synonyms too). This information would need to be serialised along with the MSet, though, so will require a network protocol bump. We could probably manage to make this backwards compatible, so only a minor version bump, but it's easier to wait until we branch for 1.1.

Changed 7 months ago by richard

  • description modified (diff)
  • milestone set to 1.1

Changed 7 months ago by richard

  • blocking deleted

(In #120) Remove the unfixed dependencies so we can close this bug - they're all marked for the 1.1.0 milestone.

Changed 5 months ago by richard

  • component changed from Backend-Flint to Backend-Chert
  • description modified (diff)

Changed Component to Backend-Chert because flint is now "frozen", so we won't be working on this for flint.

Note: See TracTickets for help on using tickets.