Ticket #183 (assigned defect)

Opened 17 months ago

Last modified 15 months ago

Remote backend should support use of Xapian::MatchDecider

Reported by: richard Owned by: richard
Priority: normal Milestone:
Component: Backend-Remote Version: SVN trunk
Severity: normal Keywords:
Cc: Blocked By:
Operating System: All Blocking:

Description

Currently, Enquire::register_match_decider() simply stores the values passed to it in the internals of the Enquire object. These values never get used.

Either register_match_decider() should be removed, or (more probably) the values should be used in the remote match case to allow match deciders registered with the server to be used.

For now, I've added a note in the documentation comment that this method effectively does nothing.

Change History

Changed 17 months ago by richard

  • status changed from new to assigned

Changed 15 months ago by olly

  • component changed from Library API to Backend-Remote
  • summary changed from Enquire::register_match_decider() currently does nothing to Remote backend should support use of Xapian::MatchDecider

This method anticipates remote backend support for MatchDeciders?, so removing it isn't helpful unless we come up with a better approach.

We don't seem to have a bug for lack of remote MatchDecider? support, so reusing this one.

The main difficulty I can see is that the MatchDecider?-derived object would need to be serialised across before the match and back again afterwards (assuming the subclass has data members). That's going to put extra requirements on user implemented subclasses of MatchDecider?, so this definitely can't go into 1.0.x.

Changed 15 months ago by trac

  • platform set to All

Changed 15 months ago by olly

Thinking about this more, the approach of register_match_decider seems wrong - it would be better (for consistency if nothing else) to handle this like we do for Weight subclasses - add a method to the class which returns the name. We'll also need to allow the object to serialise and unserialise any state.

So I think deprecating the current Enquire::register_match_decider() would be best - I'm just building and will commit that change shortly. Since it doesn't actually do anything, it seems unlikely anyone is using it, so perhaps it could be dropped in 1.1.0 - for now I've marked it for removal in 1.2.0.

Note: See TracTickets for help on using tickets.