What if the `FILTERABLE_FIELDS` hash actually held the class to instantiate and the args to instantiate with. Then this loop could simply be

~~~ { .ruby }
searcher.register field[:class].new(field[:args])
~~~

It'd be nice if it was simply an array of the already instantiated Filters, but I believe that wouldn't work with the time-dependent range block.