    /*
     *  call-seq:
     *     index_reader.term_vectors(doc_id) -> hash of TermVector
     *
     *  Return the TermVectors for the document at +doc_id+ in the index. The
     *  value returned is a hash of the TermVectors for each field in the document
     *  and they are referenced by field names (as symbols).
     */
    static VALUE
    frb_ir_term_vectors(VALUE self, VALUE rdoc_id)
    {
        IndexReader *ir = (IndexReader *)DATA_PTR(self);
        Hash *tvs = ir->term_vectors(ir, FIX2INT(rdoc_id));
        VALUE rtvs = rb_hash_new();
        h_each(tvs, &frb_add_each_tv, (void *)rtvs);
        h_destroy(tvs);

        return rtvs;
    }