예제 #1
0
        /* ======================================================================================= */

        protected async Task L29Test(Action <RepositoryBuilder> initialize, Func <Task> callback, bool saveInitialDocuments = true, [CallerMemberName] string memberName = "")
        {
            var indexFolderName = $"Test_{memberName}_{Guid.NewGuid()}";
            var indexingEngine  = new Lucene29LocalIndexingEngine(new IndexDirectory(indexFolderName));
            var searchEngine    = new Lucene29SearchEngine(indexingEngine, new Lucene29LocalQueryEngine());

            await base.Test(builder =>
            {
                // important: use a real local search engine instead of in-memory search
                builder.UseSearchEngine(searchEngine);

                initialize?.Invoke(builder);
            },
                            async() =>
            {
                if (saveInitialDocuments)
                {
                    using (new SystemAccount())
                    {
                        await SaveInitialIndexDocumentsAsync(CancellationToken.None);
                    }
                }

                await callback();
            });
        }
        /// <summary>
        /// Sets the Centralized Lucene search engine as the current search engine.
        /// </summary>
        public static IRepositoryBuilder UseLucene29CentralizedSearchEngine(this IRepositoryBuilder repositoryBuilder)
        {
            var searchEngine = new Lucene29SearchEngine(
                new Lucene29CentralizedIndexingEngine(null, Options.Create(new CentralizedOptions())),
                new Lucene29CentralizedQueryEngine());

            repositoryBuilder.UseSearchEngine(searchEngine);

            return(repositoryBuilder);
        }
예제 #3
0
        public static IRepositoryBuilder UseLucene29LocalSearchEngine(this IRepositoryBuilder repositoryBuilder, string indexDirectoryPath = null)
        {
            var indexDirectory = string.IsNullOrEmpty(indexDirectoryPath)
                ? null
                : new IndexDirectory(null, indexDirectoryPath);

            var searchEngine = new Lucene29SearchEngine(
                new Lucene29LocalIndexingEngine(indexDirectory),
                new Lucene29LocalQueryEngine());

            repositoryBuilder.UseSearchEngine(searchEngine);

            return(repositoryBuilder);
        }