public void AddCoreFromXML() { var solrFacility = new SolrNetFacility(); var container = new WindsorContainer(new XmlInterpreter(new StaticContentResource(@"<castle> <facilities> <facility id='solr'> <solrURL>http://localhost:8983/solr/defaultCore</solrURL> <cores> <core id='core0-id'> <documentType>Castle.Facilities.SolrNetIntegration.Tests.Tests+Document, Castle.Facilities.SolrNetIntegration.Tests</documentType> <url>http://localhost:8983/solr/core0</url> </core> <core id='core1-id'> <documentType>Castle.Facilities.SolrNetIntegration.Tests.Tests+Document, Castle.Facilities.SolrNetIntegration.Tests</documentType> <url>http://localhost:8983/solr/core1</url> </core> <core id='core2-id'> <documentType>Castle.Facilities.SolrNetIntegration.Tests.Tests+Core1Entity, Castle.Facilities.SolrNetIntegration.Tests</documentType> <url>http://localhost:8983/solr/core1</url> </core> </cores> </facility> </facilities> </castle>"))); container.AddFacility("solr", solrFacility); TestCores(container); }
public void SetConnectionTimeoutInMulticore() { const string core0url = "http://localhost:8983/solr/core0"; const string core1url = "http://localhost:8983/solr/core1"; var solrFacility = new SolrNetFacility("http://localhost:8983/solr/defaultCore"); solrFacility.AddCore("core0-id", typeof(Document), core0url); solrFacility.AddCore("core1-id", typeof(Document), core1url); solrFacility.AddCore("core2-id", typeof(Core1Entity), core1url); var container = new WindsorContainer(); container.Kernel.ComponentModelCreated += model => { if (model.Implementation == typeof(SolrConnection)) { model.Parameters.Add("Timeout", "2000"); } }; container.AddFacility("solr", solrFacility); var allTimeouts = container.ResolveAll <ISolrConnection>().Cast <SolrConnection>().Select(x => x.Timeout); foreach (var t in allTimeouts) { Assert.AreEqual(2000, t); } }
public void ReplacingMapper() { var mapper = new MReadOnlyMappingManager(); var solrFacility = new SolrNetFacility("http://localhost:8983/solr") {Mapper = mapper}; var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var m = container.Resolve<IReadOnlyMappingManager>(); Assert.AreSame(m, mapper); }
public void Container_has_ISolrFieldParser() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr/techproducts"); var container = new WindsorContainer(); container.AddFacility(solrFacility); container.Resolve <ISolrFieldParser>(); }
public void Container_has_ISolrFieldSerializer() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve <ISolrFieldSerializer>(); }
public void Container_has_ISolrDocumentPropertyVisitor() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve <ISolrDocumentPropertyVisitor>(); }
public void Resolve_ISolrOperations() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve <ISolrOperations <Document> >(); }
public void DictionaryDocument_Operations() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve <ISolrOperations <Dictionary <string, object> > >(); }
public void MappingValidationManager() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var validator = container.Resolve <IMappingValidator>(); }
public void DictionaryDocument_ResponseParser() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var parser = container.Resolve <ISolrDocumentResponseParser <Dictionary <string, object> > >(); Assert.IsType <SolrDictionaryDocumentResponseParser>(parser); }
public WindsorSolrStartUp(IWindsorContainer container) { if (!SolrContentSearchManager.IsEnabled) { return; } this.Container = container; this.SolrFacility = new SolrNetFacility(SolrContentSearchManager.ServiceAddress); }
public void DictionaryDocument_Serializer() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var serializer = container.Resolve <ISolrDocumentSerializer <Dictionary <string, object> > >(); Assert.IsInstanceOfType <SolrDictionarySerializer>(serializer); }
public SolrMachine(string coreName) { var url = string.Format("http://xxx/solr/{0}", coreName); myContainer.Register(Component.For <IHttpWebRequestFactory>().ImplementedBy <SolrAuth>()); var solrFacility = new SolrNetFacility(string.Format("http://xxx/solr/{0}", "defaultCollection")); solrFacility.AddCore(coreName, typeof(T), url); myContainer.AddFacility(solrFacility); this.actuallyInstance = myContainer.Resolve <ISolrOperations <T> >(); }
public void DictionaryDocument_add() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>(); solr.Add(new Dictionary<string, object> { {"id", "ababa"}, {"manu", "who knows"}, {"popularity", 55}, {"timestamp", DateTime.UtcNow}, }); }
public void AddCore() { const string core0url = "http://localhost:8983/solr/core0"; const string core1url = "http://localhost:8983/solr/core1"; var solrFacility = new SolrNetFacility("http://localhost:8983/solr/defaultCore"); solrFacility.AddCore("core0-id", typeof(Document), core0url); solrFacility.AddCore("core1-id", typeof(Document), core1url); solrFacility.AddCore("core2-id", typeof(Core1Entity), core1url); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); TestCores(container); }
public void ReplacingMapper() { var mapper = MockRepository.GenerateMock <IReadOnlyMappingManager>(); var solrFacility = new SolrNetFacility("http://localhost:8983/solr") { Mapper = mapper }; var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var m = container.Resolve <IReadOnlyMappingManager>(); Assert.AreSame(m, mapper); }
public void ReplacingMapper() { var mapper = new MReadOnlyMappingManager(); var solrFacility = new SolrNetFacility("http://localhost:8983/solr/techproducts") { Mapper = mapper }; var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var m = container.Resolve <IReadOnlyMappingManager>(); Assert.Same(m, mapper); }
public void DictionaryDocument_add() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var solr = container.Resolve <ISolrOperations <Dictionary <string, object> > >(); solr.Add(new Dictionary <string, object> { { "id", "ababa" }, { "manu", "who knows" }, { "popularity", 55 }, { "timestamp", DateTime.UtcNow }, }); }
public void DictionaryDocument() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>(); var results = solr.Query(SolrQuery.All); Assert.GreaterThan(results.Count, 0); foreach (var d in results) { Assert.GreaterThan(d.Count, 0); foreach (var kv in d) Console.WriteLine("{0}: {1}", kv.Key, kv.Value); } }
private void DictionaryDocumentAdd() { var solrFacility = new SolrNetFacility(solrServiceUrl); var container = new WindsorContainer(); container.AddFacility(solrFacility); var solr = container.Resolve <ISolrOperations <Dictionary <string, object> > >(); solr.Add(new Dictionary <string, object> { { "id", "ababa" }, { "manu", "who knows" }, { "popularity", 55 }, { "timestamp", DateTime.UtcNow }, }); }
public void AddCoreWithPostConnections() { const string core0url = "http://localhost:8983/solr/techproducts/core0"; const string core1url = "http://localhost:8983/solr/techproducts/core1"; var solrFacility = new SolrNetFacility("http://localhost:8983/solr/techproducts/defaultCore"); solrFacility.AddCore("core0-id", typeof(Document), core0url, true); solrFacility.AddCore("core1-id", typeof(Document), core1url, true); solrFacility.AddCore("core2-id", typeof(Core1Entity), core1url, true); var container = new WindsorContainer(); container.AddFacility(solrFacility); TestCoresWithPostConnections(container); }
public void ResponseParsers() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var parser = container.Resolve <ISolrQueryResultParser <Document> >() as SolrQueryResultParser <Document>; var field = parser.GetType().GetField("parsers", BindingFlags.NonPublic | BindingFlags.Instance); var parsers = (ISolrAbstractResponseParser <Document>[])field.GetValue(parser); Assert.AreEqual(13, parsers.Length); foreach (var t in parsers) { Console.WriteLine(t); } }
public void DictionaryDocument() { var solrFacility = new SolrNetFacility("http://solr:8983/solr"); var container = new WindsorContainer(); container.AddFacility(solrFacility); var solr = container.Resolve <ISolrOperations <Dictionary <string, object> > >(); var results = solr.Query(SolrQuery.All); Assert.True(results.Count > 0); foreach (var d in results) { Assert.True(d.Count > 0); foreach (var kv in d) { testOutputHelper.WriteLine("{0}: {1}", kv.Key, kv.Value); } } }
public void DictionaryDocument() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var solr = container.Resolve <ISolrOperations <Dictionary <string, object> > >(); var results = solr.Query(SolrQuery.All); Assert.GreaterThan(results.Count, 0); foreach (var d in results) { Assert.GreaterThan(d.Count, 0); foreach (var kv in d) { Console.WriteLine("{0}: {1}", kv.Key, kv.Value); } } }
protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); DependencyConfig.Configure(new ContainerBuilder()); AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier; Database.SetInitializer(new MigrateDatabaseToLatestVersion <MetadataContext, Migrations.Configuration>()); MvcHandler.DisableMvcResponseHeader = true; // setting locale var culture = new CultureInfo("nb-NO"); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; log4net.Config.XmlConfigurator.Configure(); //https://github.com/mausch/SolrNet/blob/master/Documentation/Multi-core-instance.md var solrFacility = new SolrNetFacility(WebConfigurationManager.AppSettings["SolrServerUrl"]); solrFacility.AddCore(SolrCores.Metadata, typeof(MetadataIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/metadata"); solrFacility.AddCore(SolrCores.MetadataEnglish, typeof(MetadataIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/metadata_en"); solrFacility.AddCore(SolrCores.MetadataAll, typeof(MetadataIndexAllDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/metadata_all"); solrFacility.AddCore(SolrCores.MetadataAllEnglish, typeof(MetadataIndexAllDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/metadata_all_en"); solrFacility.AddCore(SolrCores.Services, typeof(ServiceIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/services"); solrFacility.AddCore(SolrCores.ServicesEnglish, typeof(ServiceIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/services_en"); solrFacility.AddCore(SolrCores.Applications, typeof(ApplicationIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/applications"); solrFacility.AddCore(SolrCores.ApplicationsEnglish, typeof(ApplicationIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/applications_en"); solrFacility.AddCore(SolrCores.Articles, typeof(ArticleIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/articles"); solrFacility.AddCore(SolrCores.ArticlesEnglish, typeof(ArticleIndexDoc), WebConfigurationManager.AppSettings["SolrServerUrl"] + "/solr/articles_en"); indexContainer.AddFacility(solrFacility); }
public void MultiCore() { const string core0url = "http://localhost:8983/solr/core0"; const string core1url = "http://localhost:8983/solr/core1"; var solrFacility = new SolrNetFacility(core0url); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); // override core1 components const string core1Connection = "core1.connection"; container.Register(Component.For <ISolrConnection>().ImplementedBy <SolrConnection>().Named(core1Connection) .Parameters(Parameter.ForKey("serverURL").Eq(core1url))); container.Register(Component.For(typeof(ISolrBasicOperations <Core1Entity>), typeof(ISolrBasicReadOnlyOperations <Core1Entity>)) .ImplementedBy <SolrBasicServer <Core1Entity> >() .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(core1Connection))); container.Register(Component.For <ISolrQueryExecuter <Core1Entity> >().ImplementedBy <SolrQueryExecuter <Core1Entity> >() .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(core1Connection))); // assert that everything is correctly wired container.Kernel.DependencyResolving += (client, model, dep) => { if (model.TargetType == typeof(ISolrConnection)) { if (client.Service == typeof(ISolrBasicOperations <Core1Entity>) || client.Service == typeof(ISolrQueryExecuter <Core1Entity>)) { Assert.AreEqual(core1url, ((SolrConnection)dep).ServerURL); } if (client.Service == typeof(ISolrBasicOperations <Document>) || client.Service == typeof(ISolrQueryExecuter <Document>)) { Assert.AreEqual(core0url, ((SolrConnection)dep).ServerURL); } } }; container.Resolve <ISolrOperations <Core1Entity> >(); container.Resolve <ISolrOperations <Document> >(); }
public void Container_has_ISolrDocumentPropertyVisitor() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve<ISolrDocumentPropertyVisitor>(); }
public void Container_has_ISolrFieldParser() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve<ISolrFieldParser>(); }
public void SetConnectionTimeoutInMulticore() { const string core0url = "http://localhost:8983/solr/core0"; const string core1url = "http://localhost:8983/solr/core1"; var solrFacility = new SolrNetFacility("http://localhost:8983/solr/defaultCore"); solrFacility.AddCore("core0-id", typeof(Document), core0url); solrFacility.AddCore("core1-id", typeof(Document), core1url); solrFacility.AddCore("core2-id", typeof(Core1Entity), core1url); var container = new WindsorContainer(); container.Kernel.ComponentModelCreated += model => { if (model.Implementation == typeof(SolrConnection)) model.Parameters.Add("Timeout", "2000"); }; container.AddFacility("solr", solrFacility); var allTimeouts = container.ResolveAll<ISolrConnection>().Cast<SolrConnection>().Select(x => x.Timeout); foreach (var t in allTimeouts) Assert.AreEqual(2000, t); }
static void Main(string[] args) { //Startup.Init<Course>("http://localhost:8983/solr/MercDemo"); //ISolrOperations<Media> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Media>>(); IWindsorContainer container = new WindsorContainer(); SolrNetFacility solrNetFacility = new SolrNetFacility("http://localhost:8983/solr"); solrNetFacility.AddCore("core1", typeof(Media), "http://localhost:8983/solr/Document"); solrNetFacility.AddCore("core2", typeof(Media2), "http://localhost:8983/solr/Metadata"); container.AddFacility("solr", solrNetFacility); ISolrOperations <Media> solrCore1 = container.Resolve <ISolrOperations <Media> >("core1"); ISolrOperations <Media2> solrCore2 = container.Resolve <ISolrOperations <Media2> >("core2"); Console.WriteLine("Please enter query:"); string queryFromUser = Console.ReadLine(); while (!string.IsNullOrWhiteSpace(queryFromUser)) { SolrQueryResults <Media> Medias = solrCore1.Query(queryFromUser); Console.WriteLine(); Console.WriteLine("*Results*"); Console.WriteLine("Total found: " + Medias.NumFound); int i = 0; foreach (Media media in Medias) { Console.WriteLine(i++ + ": " + media.MediaId + " "); } Console.WriteLine(); Console.Write("Execution time (ms): " + Medias.Header.QTime); SolrQueryResults <Media2> Medias2 = solrCore2.Query(queryFromUser); Console.WriteLine(); Console.WriteLine("*Results*"); Console.WriteLine("Total found: " + Medias2.NumFound); int j = 0; foreach (Media2 media2 in Medias2) { Console.WriteLine(j++ + ": " + media2.MediaId + " "); } Console.WriteLine(); Console.Write("Execution time (ms): " + Medias2.Header.QTime); //Saving Search Results Guid guid = Guid.NewGuid(); string remoteUri = "http://localhost:8983/solr/Document/select?q=" + queryFromUser + "&wt=json&indent=true"; string fileName = "SearchResults-" + guid + "-1.json", myStringWebResource = null; WebClient myWebClient = new WebClient(); myStringWebResource = remoteUri + fileName; myWebClient.DownloadFile(myStringWebResource, fileName); Console.WriteLine("\nSuccessfully Downloaded File \"{0}\" from \"{1}\"", fileName, myStringWebResource); Console.WriteLine("\nDownloaded file saved in the following file system folder:\n\t"); string remoteUri2 = "http://localhost:8983/solr/Metadata/select?q=" + queryFromUser + "&wt=json&indent=true"; string fileName2 = "SearchResults-" + guid + "-2.json", myStringWebResource2 = null; WebClient myWebClient2 = new WebClient(); myStringWebResource2 = remoteUri2 + fileName2; myWebClient2.DownloadFile(myStringWebResource2, fileName2); Console.WriteLine("Successfully Downloaded File \"{0}\" from \"{1}\"", fileName2, myStringWebResource2); Console.ReadLine(); Console.WriteLine(Environment.NewLine + "Please enter query:"); queryFromUser = Console.ReadLine(); } Console.WriteLine(Environment.NewLine + "Demo completed!"); }
public void MultiCore() { const string core0url = "http://localhost:8983/solr/core0"; const string core1url = "http://localhost:8983/solr/core1"; var solrFacility = new SolrNetFacility(core0url); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); // override core1 components const string core1Connection = "core1.connection"; container.Register(Component.For<ISolrConnection>().ImplementedBy<SolrConnection>().Named(core1Connection) .Parameters(Parameter.ForKey("serverURL").Eq(core1url))); container.Register(Component.For(typeof (ISolrBasicOperations<Core1Entity>), typeof (ISolrBasicReadOnlyOperations<Core1Entity>)) .ImplementedBy<SolrBasicServer<Core1Entity>>() .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(core1Connection))); container.Register(Component.For<ISolrQueryExecuter<Core1Entity>>().ImplementedBy<SolrQueryExecuter<Core1Entity>>() .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(core1Connection))); // assert that everything is correctly wired container.Kernel.DependencyResolving += (client, model, dep) => { if (model.TargetType == typeof(ISolrConnection)) { if (client.Services.Contains(typeof(ISolrBasicOperations<Core1Entity>)) || client.Services.Contains(typeof(ISolrQueryExecuter<Core1Entity>))) Assert.AreEqual(core1url, ((SolrConnection) dep).ServerURL); if (client.Services.Contains(typeof(ISolrBasicOperations<Document>)) || client.Services.Contains(typeof(ISolrQueryExecuter<Document>))) Assert.AreEqual(core0url, ((SolrConnection) dep).ServerURL); } }; container.Resolve<ISolrOperations<Core1Entity>>(); container.Resolve<ISolrOperations<Document>>(); }
public void Resolve_ISolrOperations() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve<ISolrOperations<Document>>(); }
public void DictionaryDocument_Serializer() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var serializer = container.Resolve<ISolrDocumentSerializer<Dictionary<string, object>>>(); Assert.IsInstanceOfType<SolrDictionarySerializer>(serializer); }
public void MappingValidationManager() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var validator = container.Resolve<IMappingValidator>(); }
public void DictionaryDocument_Operations() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); container.Resolve<ISolrOperations<Dictionary<string, object>>>(); }
public void Can_add_selecte_and_remove_document() { var solrFacility = new SolrNetFacility(_solrUrl); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var solr = container.Resolve<ISolrOperations<Dictionary<string, object>>>(); var dictionary = new Dictionary<string, object> { {"id", "ababa"}, {"manu", "who knows"}, {"popularity", 55}, {"timestamp", DateTime.UtcNow}, }; solr.Add(dictionary); solr.Commit(); var results = solr.Query(SolrQuery.All); Assert.That(results.Count, Is.GreaterThan(0)); foreach (var d in results) { Assert.That(d.Count, Is.GreaterThan(0)); foreach (var kv in d) { Console.WriteLine("{0}: {1}", kv.Key, kv.Value); break; } break; } solr.Delete("ababa"); }
public void ResponseParsers() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var parser = container.Resolve<ISolrQueryResultParser<Document>>() as SolrQueryResultParser<Document>; var field = parser.GetType().GetField("parsers", BindingFlags.NonPublic | BindingFlags.Instance); var parsers = (ISolrResponseParser<Document>[]) field.GetValue(parser); Assert.AreEqual(10, parsers.Length); foreach (var t in parsers) Console.WriteLine(t); }
public void DictionaryDocument_ResponseParser() { var solrFacility = new SolrNetFacility("http://localhost:8983/solr"); var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var parser = container.Resolve<ISolrDocumentResponseParser<Dictionary<string, object>>>(); Assert.That(parser, Is.InstanceOfType<SolrDictionaryDocumentResponseParser>()); }
public void ReplacingMapper() { var mapper = MockRepository.GenerateMock<IReadOnlyMappingManager>(); var solrFacility = new SolrNetFacility(_solrUrl) {Mapper = mapper}; var container = new WindsorContainer(); container.AddFacility("solr", solrFacility); var m = container.Resolve<IReadOnlyMappingManager>(); Assert.AreSame(m, mapper); }