    /*
     *  call-seq:
     *     MultiTermQuery.new(field, options = {}) -> multi_term_query
     *
     *  Create a new MultiTermQuery on field +field+. You will also need to add
     *  terms to the query using the MultiTermQuery#add_term method.
     *
     *  There are several options available to you when creating a
     *  MultiTermQueries;
     *
     *  === Options
     *
     *  :max_terms:: You can specify the maximum number of terms that can be
     *               added to the query. This is to prevent memory usage overflow,
     *               particularly when don't directly control the addition of
     *               terms to the Query object like when you create Wildcard
     *               queries. For example, searching for "content:*" would cause
     *               problems without this limit.
     *  :min_score:: The minimum score a term must have to be added to the query.
     *               For example you could implement your own wild-card queries
     *               that gives matches a score. To limit the number of terms
     *               added to the query you could set a lower limit to this score.
     *               FuzzyQuery in particular makes use of this parameter.
     */
    static VALUE
    frb_mtq_init(int argc, VALUE *argv, VALUE self)
    {
        VALUE rfield, roptions;
        float min_score = 0.0;
        int max_terms = FIX2INT(frb_mtq_get_dmt(self));
        Query *q;

        if (rb_scan_args(argc, argv, "11", &rfield, &roptions) == 2) {
            VALUE v;
            if (Qnil != (v = rb_hash_aref(roptions, sym_max_terms))) {
                max_terms = FIX2INT(v);
            }
            if (Qnil != (v = rb_hash_aref(roptions, sym_min_score))) {
                min_score = (float)NUM2DBL(v);
            }
        }
        q = multi_tq_new_conf(frb_field(rfield), max_terms, min_score);
        Frt_Wrap_Struct(self, NULL, &frb_q_free, q);
        object_add(q, self);
        return self;
    }