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. Otherwise, I don't think the sky is falling - I think the new API is being shaken out.

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

--
- 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