    /*
     *  call-seq:
     *     term_doc_enum.seek(field, term) -> self
     *
     *  Seek the term +term+ in the index for +field+. After you call this method
     *  you can call next or each to skip through the documents and positions of
     *  this particular term.
     */
    static VALUE
    frb_tde_seek(VALUE self, VALUE rfield, VALUE rterm)
    {
        TermDocEnum *tde = (TermDocEnum *)DATA_PTR(self);
        char *term;
        VALUE rfnum_map = rb_ivar_get(self, id_fld_num_map);
        VALUE rfnum = rb_hash_aref(rfnum_map, rfield);
        int field_num = -1;
        term = StringValuePtr(rterm);
        if (rfnum != Qnil) {
            field_num = FIX2INT(rfnum);
        } else {
            rb_raise(rb_eArgError, "field %s doesn't exist in the index",
                     (char *)frb_field(rfield));
        }
        tde->seek(tde, field_num, term);
        return self;
    }