On 2/1/07, Ryan McKinley <[EMAIL PROTECTED]> wrote:
I am (was?) using DISTINCT to say, only add the unique fields. As implemented, it keeps a Collection<String> for each field name. If the 'mode' is 'DISTINCT' the collection is Set<String>, otherwise List<String>
Ah, OK... that does seem useful.
How would you feel about an interface like this:
Not sure... depends on how update handlers will use it... One thing we might not want to get rid of though is streaming (constructing and adding a document, then discarding it). People are starting to add a lot of documents in a single XML request, and this will be much larger for CVS/SQL. For that reason, I'm not sure how often the "Collection" part will be utilized. I like the it OK on the conceptual level though. -Yonik
public class IndexDocumentsCommand { public enum MODE { APPEND, // add the fields to existing fields OVERWRITE, // overwrite existing fields INCREMENT, // increment existing field DISTINCT // same as APPEND, but make sure there are distinct values }; // optional id in "internal" indexed form... if it is needed and not supplied, // it will be obtained from the doc. public String indexedId; public Collection<SolrDocument> docs; public boolean allowDups; public boolean overwrite; public SimpleOrderedMap<MODE> modifyFieldMode; // What to do for each field. We should support * public int commitMaxTime = -1; // make sure these documents are committed within this much time }