On Dec 10, 2009, at 12:37 PM, Grant Ingersoll wrote:

> OK, next up:
> 
> How to handle the need to create multiple ValueSource instances for a given 
> poly field?  FieldType.getValueSource() only returns a single instance.
> 
> I think there are a few options:
> 
> 1. Change the signature above to return a list of ValueSources.  This likely 
> has back compat. issues.
> 2. Just change those functions that need to handle poly fields (the distance 
> functions) to worry about them and realize that the other functions won't 
> work with them
> 3. Punt and require the user to know the secret handshake that is the naming 
> convention used.  In some regard, this is no different than what any 
> developer would experience now when using dynamic fields with function 
> queries.

4. Create a derivative ValueSource called PolyValueSource that is a ValueSource 
that can "expand" (kind of like a rewrite() method) to get the "sub" 
ValueSources.  Then, the functions that can work with a poly field can check to 
see if the ValueSource is expandable and then do so.  This way all existing 
functions work as is, we just need to make a couple of changes in the 
ValueSourceParser when dealing with the distance functions.  This is a 
combination of 1 and 2, essentially.

5. Yonik suggested modifying DocValues (DocValues.polyVal(double [] valHolder)  
- Yonik called it getPoint(double [] val) but I think it should be more generic 
since a poly field isn't point specific ) to be able to return multiple values 
per Document.
        GSI: I'm not sure this works w/o then needing to add in checks in the 
functions themselves to deal w/ poly doc values, but I could be missing 
something. 

Reply via email to