/// <summary> /// Lance l'indexation de tous les objets Vikings /// </summary> static void Main(string[] args) { // Instancie la base de données ModeleMVCEntities db = new ModeleMVCEntities(); // Génère un GUID pour versionner les données issues de cette indexation string version = Guid.NewGuid().ToString(); Console.WriteLine("Version index:" + version); // Parcourt les vikings de la base et les ajoute à l'index au fur et à mesure VikingFactory vikingsFactory = new VikingFactory(db); VikingsIndexer vikingsIndexer = new VikingsIndexer(db); vikingsIndexer.Add(vikingsFactory.GetAll().ToList(), version, false); // Supprime les anciennes données en se basant sur le numero de version Console.WriteLine("Nettoyage anciennes versions..."); vikingsIndexer.DeleteVersion(version); // Envoie les requetes de commit et d'optimisation de l'index Console.WriteLine("Commit et optimisation"); vikingsIndexer.Commit(); vikingsIndexer.Optimize(); Console.WriteLine("Indexation terminée, presser une touche pour fermer."); Console.ReadKey(); }
/// <summary> /// Constructeur avec initialisation du core et du context /// </summary> /// <param name="SolRUrl">URL du moteur de recherche SolR</param> /// <param name="SolRCore">Nom du core SolR</param> /// <param name="dbContext">Context entity nécessaire pour les classes dépendantes du context</param> public BaseSolRIndex(string SolRUrl, string SolRCore, ModeleMVCEntities dbContext = null) { this.SolRUrl = SolRUrl; this.SolRCore = SolRCore; if (dbContext != null) { this.dbContext = dbContext; } }
/// <summary> /// Constructeur public lié au constructeur de base /// </summary> /// <param name="dbContext">Context Entity Framework utilisé dans la classe</param> public VikingsIndexer(ModeleMVCEntities dbContext) : base(SolrUrl, SolrCore, dbContext) { }
/// <summary> /// Constructeur public lié au constructeur de base /// </summary> /// <param name="dbContext">Context Entity Framework utilisé dans la classe</param> /// <param name="AsNoTracking">Supprime la détection de modification pour des factories utilisées pour de la lecture</param> /// <param name="EnableMultipleOptimization">Optimise les mises à jour multiples mais n'utilise plus en boucle les ajout/modification/suppression unitaires</param> public VikingFactory(ModeleMVCEntities dbContext, bool AsNoTracking = false, bool EnableMultipleOptimization = false) : base(dbContext, AsNoTracking, EnableMultipleOptimization) { }