@Override
  public boolean setFieldsInternal(
      LengthSolrInputDocument solrDocument, EntityReference entityReference) throws Exception {
    BaseObjectReference objectReference = new BaseObjectReference(entityReference);

    DocumentReference classReference = objectReference.getXClassReference();
    DocumentReference documentReference = new DocumentReference(objectReference.getParent());

    XWikiDocument document = getDocument(documentReference);
    BaseObject object = document.getXObject(objectReference);
    if (object == null) {
      return false;
    }

    solrDocument.setField(FieldUtils.ID, resolver.getId(object.getReference()));
    setDocumentFields(documentReference, solrDocument);
    solrDocument.setField(FieldUtils.TYPE, objectReference.getType().name());
    solrDocument.setField(FieldUtils.CLASS, localSerializer.serialize(classReference));
    solrDocument.setField(FieldUtils.NUMBER, objectReference.getObjectNumber());

    setLocaleAndContentFields(documentReference, solrDocument, object);

    return true;
  }