Пример #1
0
        public BasicSearchIndexTest()
        {
            TestLiveDocsOptions options = new TestLiveDocsOptions
            {
                Search = new SearchConfiguration()
            };
            SearchPipeline         searchPipeline     = new SearchPipelineBuilder().Tokenize().Normalize().RemoveStopWords().Stem().Build();
            TestDocumentationIndex documentationIndex = new TestDocumentationIndex
            {
                DefaultProject = new TestDocumentationProject()
            };

            documentationIndex.DefaultProject.Documents.Add(new TestDocument("Cat cat cat dog."));

            basicSearchIndex = new BasicSearchIndex(searchPipeline, documentationIndex, options, null)
            {
                Documents = new[]
                {
                    new BasicSearchIndex.Element
                    {
                        Path           = "cat",
                        LexicalIndexes = new [] { 0, 1, 2 }
                    }
                },
                Lexical = new[] { "cat", "are", "awesome" }
            };
        }
Пример #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <LiveDocsOptions>(Configuration.GetSection("LiveDocs"));

            SearchPipeline searchPipeline = new SearchPipelineBuilder().Tokenize().Normalize().RemoveStopWords().Stem().Build();

            services.AddSingleton(searchPipeline);

            services.AddSingleton <IDocumentationService, DocumentationService>();

            services.AddHostedService <ScheduledHostedService>();

            services.AddControllersWithViews();
            services.AddRazorPages();
        }
Пример #3
0
        public BigSearchIndexTest(ITestOutputHelper output)
        {
            _Output = output;
            TestLiveDocsOptions options = new TestLiveDocsOptions
            {
                Search = new SearchConfiguration()
            };
            SearchPipeline         searchPipeline     = new SearchPipelineBuilder().Tokenize().Normalize().RemoveStopWords().Stem().Build();
            TestDocumentationIndex documentationIndex = new TestDocumentationIndex
            {
                DefaultProject = new TestDocumentationProject()
            };

            _Random = new Random(127442);

            List <string> words = new List <string>();

            for (int i = 0; i < 15000; i++)
            {
                words.Add(WordMaker(_Random.Next(3, 10)));
            }

            // Seed a few english words
            words.Add("person");
            words.Add("year");
            words.Add("way");
            words.Add("day");
            words.Add("thing");
            words.Add("man");
            words.Add("world");
            words.Add("life");
            words.Add("hand");
            words.Add("cat");
            words.Add("code");

            for (int i = 0; i < 1000; i++)
            {
                List <string> content = new List <string>();
                for (int j = 0; j < _Random.Next(10, 5000); j++)
                {
                    content.Add(words[_Random.Next(0, words.Count)]);
                }
                documentationIndex.DefaultProject.Documents.Add(new TestDocument(string.Join(' ', content)));
            }

            _BigSearchIndex = new BasicSearchIndex(searchPipeline, documentationIndex, options, null);
            _BigSearchIndex.BuildIndex().Wait();
        }
Пример #4
0
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);

            builder.RootComponents.Add <App>("app");

            builder.Services.AddScoped(sp => new HttpClient {
                BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
            });

            MarkdownPipeline markdownPipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().UseBootstrap().Build();

            builder.Services.AddSingleton(markdownPipeline);

            SearchPipeline searchPipeline = new SearchPipelineBuilder().Tokenize().Normalize().RemoveStopWords().Stem().Build();

            builder.Services.AddSingleton(searchPipeline);

            builder.Services.AddSingleton <IDocumentationService, RemoteDocumentationService>();

            builder.Services.AddSingleton <RemoteLiveDocsOptions>();

            await builder.Build().RunAsync();
        }
Пример #5
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            config.AddEnvironmentVariables(prefix: "LiveDocs_");
            config.AddCommandLine(args);
        })
        .ConfigureHostConfiguration(configHost =>
        {
            configHost.AddJsonFile("livedocs.json");
            configHost.AddJsonFile("livedocs.Development.json", optional: true);
            configHost.AddJsonFile("livedocs.Staging.json", optional: true);
        })
        .ConfigureServices((hostContext, services) =>
        {
            services.Configure <LiveDocsOptions>(hostContext.Configuration.GetSection("livedocs"));

            SearchPipeline searchPipeline = new SearchPipelineBuilder().Tokenize().Normalize().RemoveStopWords().Stem().Build();
            services.AddSingleton(searchPipeline);

            services.AddSingleton <IDocumentationService, DocumentationService>();

            services.AddHostedService <Worker>();
        });