Пример #1
0
        public string AddAndIndexTestdata(ScientificCenterDbContext dbContext)
        {
            var directory = Directory.GetCurrentDirectory();

            if (!dbContext.ScientificPapers.Any())
            {
                char   separator = Path.DirectorySeparatorChar;
                string script    = File.ReadAllText($"Database{separator}InitDb.sql");
                dbContext.Database.ExecuteSqlRaw(script);
            }
            else
            {
                return("Database already contains data!");
            }

            var scientificPapers = dbContext.ScientificPapers
                                   .Include(a => a.Authors)
                                   .Include(k => k.Keywords)
                                   .Include(s => s.ScientificFields).ToList();

            var indexedPapers = Search <ScientificPaperDocument>(s => s.Index(DEFAULT_INDEX)).Documents.Select(s => s.ScientificPaper).ToList();

            // skip indexing of test data if it is already indexed in ES
            if (indexedPapers.Any(scientificPapers.Contains))
            {
                return("Test data already indexed!");
            }

            foreach (var sp in scientificPapers)
            {
                IndexScientitifPaper(directory, sp.PdfFileName, sp);
            }

            return("Successfully added and indexed test data!");
        }
Пример #2
0
        public static void Main(string[] args)
        {
            using (var dbContext = new ScientificCenterDbContext())
            {
                //Ensure database is created
                dbContext.Database.EnsureCreated();
            }

            CreateHostBuilder(args).Build().Run();
        }
Пример #3
0
        public ScientificCenterController(ScientificCenterDbContext dbContext)
        {
            node     = new Uri("http://localhost:9200");
            settings = new ConnectionSettings(node);
            settings.DefaultIndex(ScientificCenterESClient.DEFAULT_INDEX);
            client         = new ScientificCenterESClient(settings);
            this.dbContext = dbContext;

            var response = client.Cluster.Health(ScientificCenterESClient.DEFAULT_INDEX);

            if (response.NumberOfNodes < 1)
            {
                throw new Exception("Elasticsearch is not running! \n\n" + response.DebugInformation);
            }

            client.CreateIndex();
            client.PutPipeline();
        }