public static LuceneDocument ToLucene(this MarcellDocument sourceDocument)
        {
            LuceneDocument result = new LuceneDocument();

            //Add basic document data
            result.AddStringField("Id", sourceDocument.Id ?? sourceDocument.InternalId.ToString("N"), Field.Store.YES);
            result.AddStringField("InternalId", sourceDocument.InternalId.ToString("N"), Field.Store.YES);
            result.AddDateField("ApprovalDate", sourceDocument.ApprovalDate);
            result.AddDateField("DocumentDate", sourceDocument.DocumentDate);
            result.AddDateField("EffectiveDate", sourceDocument.EffectiveDate);
            result.AddStringList("DocumentToken", sourceDocument.DocumentSimilarityData.ConsolidatedTokens);
            result.AddStringList("DocumentTopic", sourceDocument.DocumentSimilarityData.ConsolidatedTopics);
            result.AddInt32Field("TokenCount", sourceDocument.TokenCount, Field.Store.YES);
            result.AddTextField("DocumentType", sourceDocument.DocumentType ?? "", Field.Store.YES);
            result.AddTextField("OriginalType", sourceDocument.OriginalType ?? "", Field.Store.YES);
            result.AddTextField("Issuer", sourceDocument.Issuer ?? "", Field.Store.YES);
            result.AddStringField("Language", sourceDocument.Language, Field.Store.YES);
            result.AddStringField("Url", sourceDocument.Url ?? "", Field.Store.YES);
            result.AddScoredDoubleField("RecognitionQuality", sourceDocument.RecognitionQuality);
            result.AddBoolField("IsStructured", sourceDocument.IsStructured);

            if (sourceDocument.FileName != null)
            {
                result.AddStringField("FileName", sourceDocument.FileName, Field.Store.YES);
            }

            return(result);
        }