public void Optimize(Workspace workspace)
 {
     if (!NeedOptimization)
         return;
     IndexWriter writer = workspace.GetIndexWriter(directoryProvider);
     try
     {
         writer.Optimize();
     }
     catch (Exception)
     {
     }
     OptimizationForced();
 }
        public void Optimize(Workspace workspace)
        {
            if (!NeedOptimization)
            {
                return;
            }

            if (log.IsDebugEnabled)
            {
                log.Debug("Optimize " + directoryProvider.Directory + " after " + operations + " operations and " + transactions + " transactions");
            }

            IndexWriter writer = workspace.GetIndexWriter(directoryProvider);
            try
            {
                writer.Optimize();
            }
            catch (IOException e)
            {
                throw new SearchException("Unable to optimize directoryProvider: " + directoryProvider.Directory, e);
            }

            OptimizationForced();
        }