I was kind of hoping not to redo all the low level conversions like Float.intBitsToFloat((int)arr.get(doc)) (this example from FloatFieldSource) all over again and hence was hoping to use the functions and get away without doing it. However, since multivalued docValues aren't accessible that way, I have three choices:
- Do the single valued fields using the function queries and the multivalued fields using the docValues API (will also require this low level conversions for non long docvalues). Or,
- Do both singly and multi valued fields using docValues API and do the low level conversions for both. Or,
- Do single valued fields using function queries, and extend functions queries to support multivalued docvalues and use it.
Yonik Seeley Any preference? Right now, I'm thinking of going with 1 now, and when/if function queries can be made to support multivalued fields later, then switch to 3. Does that sound good? (I am fine going option 2 route as well). Also, are there any performance implications I am overlooking when using value sources as opposed to docvalues API directly?