[Xapian-devel] Re: [Xapian-commits] 9476: trunk/xapian-core/
trunk/xapian-core/include/xapian/ trunk/xapian-core/queryparser/
trunk/xapian-core/tests/
Richard Boulton
richard at lemurconsulting.com
Fri Oct 19 17:06:01 BST 2007
Olly Betts wrote:
> The API as it is after this change is the original one you committed
> (with one small semantic change). You only changed it because I pointed
> out that the behaviour it changed might actually be being used. But I
> had thought that setting the same field to a different prefix changed
> it, whereas actually it's ignored, so the whole premise for changing it
> was flawed.
Sure, that makes sense. I may be over confident that the API should
evolve in the direction I changed it, with a view to adding further
parameters to add_prefix() as time goes on, but it's perfectly sensible
to stick with the current API for now and not add new forms of
add_prefix() until we have implementations which need them (and
therefore, know that we've got the API workable).
> I tried to bring this up on IRC, but got no response, so I went ahead
> as it didn't seem controversial (it was your original API after all),
> and SVN HEAD is currently much too far from being in a releasable state,
> which I want to address. Ideally we should be able to make a release at
> short notice if we need to.
Also agreed. (I saw the comment on IRC, about 12 hours later, but
didn't respond since I didn't realise it was more than an observation.)
> FWIW, it also ends at a close bracket to avoid swallowing them when used at
> the end of a bracketted subexpression.
Forgot about that.
> I think it's better not to try to predict the API we'll want here before
> we actually try to implement it. We may get it wrong and force users to
> update their add_prefix() calls multiple times. Deprecating a method in
> favour of another has a cost for everyone using it, so it's not
> something we should do too lightly.
Good point.
>> The main concern I have is to check that we're still heading in the same
>> direction: making the query parser more configurable, and decoupling the
>> status of a prefix as an inline or a filter prefix from the way in which
>> term processing is done.
>
> I'm not sure I'd use the word decouple, as there are essential
> differences between the two (for example, it doesn't make sense to
> have the empty field prefix being a filter, nor to have a phrase of
> filters). But certainly this should be much more configurable.
Good.
> FWIW, I find it slightly more readable as currently used - the choice is
> essentially:
>
> foo->filter
>
> versus:
>
> foo->type == TYPE_FILTER
>
> It also avoids the need to Assert(foo->type == TYPE_INLINE); after
> dealing with the boolean filter case.
>
> But the main reason I changed it was that I find "TYPE_INLINE" a rather
> confusing name, and couldn't think of a better one. To me, TYPE_INLINE
> suggests a boolean filter inline in the query string (constrasted with
> a boolean filter outside the query (e.g. in an HTML SELECT).
Okay, fair enough.
As long as we're going in the same direction, I'm happy. :)
--
Richard
More information about the Xapian-devel
mailing list