code: public MtasToken getObjectById(String field, int docId, int mtasId)
        throws IOException {
      try {
        Long ref;
        Long objectRefApproxCorrection;
        IndexDoc doc = getDoc(field, docId);
        IndexInput inObjectId = indexInputList.get("indexObjectId");
        IndexInput inObject = indexInputList.get("object");
        IndexInput inTerm = indexInputList.get("term");
        if (doc.storageFlags == MtasCodecPostingsFormat.MTAS_STORAGE_BYTE) {
          inObjectId.seek(doc.fpIndexObjectId + (mtasId * 1L));
          objectRefApproxCorrection = Long.valueOf(inObjectId.readByte());
        } else if (doc.storageFlags == MtasCodecPostingsFormat.MTAS_STORAGE_SHORT) {
          inObjectId.seek(doc.fpIndexObjectId + (mtasId * 2L));
          objectRefApproxCorrection = Long.valueOf(inObjectId.readShort());
        } else if (doc.storageFlags == MtasCodecPostingsFormat.MTAS_STORAGE_INTEGER) {
          inObjectId.seek(doc.fpIndexObjectId + (mtasId * 4L));
          objectRefApproxCorrection = Long.valueOf(inObjectId.readInt());
        } else {
          inObjectId.seek(doc.fpIndexObjectId + (mtasId * 8L));
          objectRefApproxCorrection = Long.valueOf(inObjectId.readLong());
        }
        ref = objectRefApproxCorrection + doc.objectRefApproxOffset
            + (mtasId * (long) doc.objectRefApproxQuotient);
        return MtasCodecPostingsFormat.getToken(inObject, inTerm, ref);
      } catch (Exception e) {
        throw new IOException(e);
      }
    }
docs: Gets the object by id.
  
  @param field
  the field
  @param docId
  the doc id
  @param mtasId
  the mtas id
  @return the object by id
  @throws IOException
  Signals that an I/O exception has occurred.