@Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        if (!super.equals(o)) {
            return false;
        }
        final LuceneIndexDoc indexDoc = (LuceneIndexDoc) o;
        return Objects.equals(maxDocsPerShard, indexDoc.maxDocsPerShard) &&
               Objects.equals(partitionSize, indexDoc.partitionSize) &&
               Objects.equals(shardsPerPartition, indexDoc.shardsPerPartition) &&
               Objects.equals(description, indexDoc.description) &&
               partitionBy == indexDoc.partitionBy &&
               Objects.equals(timeField, indexDoc.timeField) &&
               Objects.equals(retentionDayAge, indexDoc.retentionDayAge) &&
               Objects.equals(fields, indexDoc.fields) &&
               Objects.equals(volumeGroupName, indexDoc.volumeGroupName) &&
               Objects.equals(defaultExtractionPipeline, indexDoc.defaultExtractionPipeline);
    }
@return A new builder for creating a {@link DocRef} for this document's type.
stroom-core-shared/src/main/java/stroom/index/shared/LuceneIndexDoc.java