private static void ConfigureIndexingParameters(ISearchFactoryImplementor searchFactoryImplementor, IDictionary <string, string> indexProps, IDirectoryProvider provider)
        {
            LuceneIndexingParameters indexingParams = new LuceneIndexingParameters();

            ConfigureProp(
                TRANSACTION + MERGE_FACTOR,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.MergeFactor       = value;
                indexingParams.TransactionIndexParameters.MergeFactor = value;
            });

            ConfigureProp(
                TRANSACTION + MAX_MERGE_DOCS,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.MaxMergeDocs       = value;
                indexingParams.TransactionIndexParameters.MaxMergeDocs = value;
            });

            ConfigureProp(
                TRANSACTION + MAX_BUFFERED_DOCS,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.MaxBufferedDocs       = value;
                indexingParams.TransactionIndexParameters.MaxBufferedDocs = value;
            });

            ConfigureProp(
                TRANSACTION + RAM_BUFFER_SIZE,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.RamBufferSizeMb       = value;
                indexingParams.TransactionIndexParameters.RamBufferSizeMb = value;
            });

            ConfigureProp(
                TRANSACTION + TERM_INDEX_INTERVAL,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.TermIndexInterval       = value;
                indexingParams.TransactionIndexParameters.TermIndexInterval = value;
            });

            ConfigureProp(
                BATCH + MERGE_FACTOR,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.MergeFactor = value;
            });

            ConfigureProp(
                BATCH + MAX_MERGE_DOCS,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.MaxMergeDocs = value;
            });

            ConfigureProp(
                BATCH + MAX_BUFFERED_DOCS,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.MaxBufferedDocs = value;
            });

            ConfigureProp(
                BATCH + RAM_BUFFER_SIZE,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.RamBufferSizeMb = value;
            });

            ConfigureProp(
                BATCH + TERM_INDEX_INTERVAL,
                indexProps,
                delegate(int value)
            {
                indexingParams.BatchIndexParameters.TermIndexInterval = value;
            });

            searchFactoryImplementor.AddIndexingParameters(provider, indexingParams);
        }
        private static void ConfigureIndexingParameters(ISearchFactoryImplementor searchFactoryImplementor, IDictionary<string, string> indexProps, IDirectoryProvider provider)
        {
            LuceneIndexingParameters indexingParams = new LuceneIndexingParameters();

            ConfigureProp(
                    TRANSACTION + MERGE_FACTOR,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.MergeFactor = value;
                        indexingParams.TransactionIndexParameters.MergeFactor = value;
                    });

            ConfigureProp(
                    TRANSACTION + MAX_MERGE_DOCS,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.MaxMergeDocs = value;
                        indexingParams.TransactionIndexParameters.MaxMergeDocs = value;
                    });

            ConfigureProp(
                    TRANSACTION + MAX_BUFFERED_DOCS,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.MaxBufferedDocs = value;
                        indexingParams.TransactionIndexParameters.MaxBufferedDocs = value;
                    });

            ConfigureProp(
                    TRANSACTION + RAM_BUFFER_SIZE,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.RamBufferSizeMb = value;
                        indexingParams.TransactionIndexParameters.RamBufferSizeMb = value;
                    });

            ConfigureProp(
                    TRANSACTION + TERM_INDEX_INTERVAL,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.TermIndexInterval = value;
                        indexingParams.TransactionIndexParameters.TermIndexInterval = value;
                    });

            ConfigureProp(
                    BATCH + MERGE_FACTOR,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.MergeFactor = value;
                    });

            ConfigureProp(
                    BATCH + MAX_MERGE_DOCS,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.MaxMergeDocs = value;
                    });

            ConfigureProp(
                    BATCH + MAX_BUFFERED_DOCS,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.MaxBufferedDocs = value;
                    });

            ConfigureProp(
                    BATCH + RAM_BUFFER_SIZE,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.RamBufferSizeMb = value;
                    });

            ConfigureProp(
                    BATCH + TERM_INDEX_INTERVAL,
                    indexProps,
                    delegate(int value)
                    {
                        indexingParams.BatchIndexParameters.TermIndexInterval = value;
                    });

            searchFactoryImplementor.AddIndexingParameters(provider, indexingParams);
        }