I think we probably want to make the *EWeight classes available in the public API (like Xapian::Weight) and then the user would pass one here.  That avoids the rather awkward handling of the parameter which is only used by one of the schemes.

This is certainly OK as a first step though.