Grant Ingersoll wrote:

On Aug 10, 2009, at 6:28 PM, Mark Miller wrote:

Grant Ingersoll wrote:

On Aug 10, 2009, at 5:12 PM, Shai Erera wrote:

Maybe we should follow what I seem to read from Earwin and Grant - come up w/ real use cases, try to implement them w/ the current API, then if it's impossible, discuss how we can make the current API more adaptive. If at the end of this we'll get back to the new API, then we'll at least feel better about it, and more convinced it is the way to go.

Well, I have real use cases for it, but all of it is still missing the biggest piece: search side support. It's the 900 lb. elephant in the room. The 500 lb. elephant is the fact that all these attributes, AIUI, require you to hook in your own indexing chain, etc. in order to even be indexed, which is all package private stuff. It's not even clear to me what happens right now if you were to, say have a Token Stream that, say, had only one Attribute on it and none of the existing attributes (term buffer, length, position, etc.) Please correct me if I am wrong, I still don't have a deep understanding of it all.
Michael has always been up front that this new API is in preparation for flexible indexing. It doesn't give us the goodness - he has laid out the reasons for moving before the goodness comes more than once I think. From my understanding, Michael looked at what Mike was doing in one of his flexible indexing patches, wondered how some of the TokenStream stuff was going to work well with it, and came up with this new API as a solution. Yes - it gets us nothing now. But its a big move, and there is no need to do everything at once - in fact it would probably be harder to do it all at once - the rest has always been on the table. 3.0 has always been convenient to push it before, as deprecations can than be removed. Nothing forcing us to make that decision now though.

Honestly, though, it really gives you very little over the current, well functioning payloads capability other than stronger typing, the ability to pick only those attributes that you want indexed (in theory) and a byte (or so) of savings per any token that has a payload, and we _HAVE_ right now, search support for payloads.
Payloads gives us nothing as developers - you can't use that functionality without taking it from the users - payloads are for users.

Flexible indexing will lead to all kinds of little cool things - the likes of which have been discussed a lot in older emails. It will likely lead to things we cannot predict as well. Everything will be more flexible. It also could play a part in CSF, and work on allowing custom files to plug into merging. Plus everything else thats been mentioned (pfor, etc) I've been sold on the long term benefits. I don't think you need these API for them, but its my understanding it helps solve part of the equation.

A bunch of issues have come up. To my knowledge, they have been addressed with vigor every time. If someone is unhappy with how something has been addressed, and it needs to be addressed further, please speak up.

Um, that's what I've been doing. Vigor is good. I very much appreciate everyone's work. From what I can tell, most devs here are unsure at best what to do with their existing Analyzer capabilities. I've actually implemented a couple of new TokenFilter's using the new APIs. I like that aspect of it. I'm just not sure on the back compat hoops (and yes, I asked for them). But I'm also operating under the assumption that our BC approach isn't going to change anytime soon, such that it is very important that these new capabilities are worked out (and I don't just mean little performance nicks here and there, I mean in terms of usability and performance).
I'm not just responding to just you there, but more to the growing pack of those speaking against the new API. I don't see specific issues being brought up - the only issues I have seen brought up have been addressed in JIRA issues that have received no comments indicating the fix was not good enough. So we are seeing a lot of general complaints, but specific complaints have been addressed as far as I can tell.

As far as back compat - is it really still considered an issue? We have broken back compat in this release wherever it was convenient to do so. I suspect that will continue. I just wish our policy reflected how things actually work (and I think they work as they should, based on the circumstances that lead to each decision).

Let's put it this way: We expect to release 2.9 within the month (which is very short in Lucene time). That will give us a sum total of, what, 2.5 weeks of review by devs for some very major changes? I want 3.0 as much as anyone (I've been pushing for 1.5 support for at least 2 years now), but I don't want us to be in a hole going into it because we felt rushed right when the "finish" was so close.

Otherwise, I don't think the sky is falling - I think the new API is being shaken out.

I agree its not falling. It never is. This is in fact how the process works. People are doing the right thing here by discussing it and working on it.
Thats kind of in response to the ground swell that appeared to be building to roll back or hold off on the new API. To me, we would do that if the sky was falling. As long as specific issues are being addressed (and the number issues has not been that high), I just don't see a reason to hold off on the current plan.



Oh, and now it seems the new QP is dependent on it all.
Dependent how?

Attribute and a whole slew of AttributeImpls.
Oh, because it uses the Attributes. I think the new QueryParser is its own kettle of fish. It really shouldn't have a back compat promise while it lives in contrib. It needs to be shaked out before it could possibly replace the current parser.

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org



--
- Mark

http://www.lucidimagination.com




---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to