Boosting search results on download counts.

Boost search results based on download counts.
If you added an "omitempty" tag to this field and the one below it, I think you could avoid the fv map in the MarshalJSON method below.

e.g. 

    func (f FieldValueFactorFunction) MarshalJSON() ([]byte, error) {
        type fvff FieldValueFactorFunction
        return marshalNamedObject("field_value_factor", fvff(f))
    }