Transmitting query trees across servers

I’ve got a Rails application talking to a Ferret index server via DRb.
I seem to be getting myself in trouble by trying to construct a complex
query tree on the Rails side and then shipping that tree to the index
server, because:

(1) Query nodes don’t have any marshal_dump defined on them, so I can’t
transmit the query across servers that way. (Having the index server
call back to the client’s query tree via DRb would obviously be silly
and inefficient if it even worked at all, which it doesn’t.)

(2) Transforming the query to text and then parsing it on the other side
doesn’t work either, since the query parser takes things like
“+ConstantScore(RangeFilter< start_time_start:[00101136102400> >)” and
silently turns them into gibberish query trees.

Is there currently any way to specify complex queries involving filters
client-side, or am I pretty much doomed to write my own query-marshaling
code? If the latter, are there any plans to fix this in the future?


– Scott