Пример #1
0
        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);
        }
Пример #2
0
 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);
 }
Пример #3
0
        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);
            }
        }
Пример #4
0
 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);
 }
Пример #5
0
        public void Container_has_ISolrFieldParser()
        {
            var solrFacility = new SolrNetFacility("http://localhost:8983/solr/techproducts");
            var container    = new WindsorContainer();

            container.AddFacility(solrFacility);
            container.Resolve <ISolrFieldParser>();
        }
Пример #6
0
        public void Container_has_ISolrFieldSerializer()
        {
            var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
            var container    = new WindsorContainer();

            container.AddFacility("solr", solrFacility);
            container.Resolve <ISolrFieldSerializer>();
        }
Пример #7
0
        public void Container_has_ISolrDocumentPropertyVisitor()
        {
            var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
            var container    = new WindsorContainer();

            container.AddFacility("solr", solrFacility);
            container.Resolve <ISolrDocumentPropertyVisitor>();
        }
Пример #8
0
        public void Resolve_ISolrOperations()
        {
            var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
            var container    = new WindsorContainer();

            container.AddFacility("solr", solrFacility);
            container.Resolve <ISolrOperations <Document> >();
        }
Пример #9
0
        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> > >();
        }
Пример #10
0
        public void MappingValidationManager()
        {
            var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
            var container    = new WindsorContainer();

            container.AddFacility("solr", solrFacility);
            var validator = container.Resolve <IMappingValidator>();
        }
Пример #11
0
        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);
        }
Пример #13
0
        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> >();
    }
Пример #15
0
 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},
     });
 }
Пример #16
0
        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);
        }
Пример #17
0
        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);
        }
Пример #18
0
        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);
        }
Пример #19
0
        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 },
            });
        }
Пример #20
0
 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);
     }
 }
Пример #21
0
        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);
        }
Пример #22
0
        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 },
            });
        }
Пример #23
0
        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);
        }
Пример #24
0
        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);
            }
        }
Пример #25
0
        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);
                }
            }
        }
Пример #26
0
        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);
                }
            }
        }
Пример #27
0
        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);
        }
Пример #28
0
        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> >();
        }
Пример #29
0
 public void Container_has_ISolrDocumentPropertyVisitor()
 {
     var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
     var container = new WindsorContainer();
     container.AddFacility("solr", solrFacility);
     container.Resolve<ISolrDocumentPropertyVisitor>();
 }
Пример #30
0
 public void Container_has_ISolrFieldParser()
 {
     var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
     var container = new WindsorContainer();
     container.AddFacility("solr", solrFacility);
     container.Resolve<ISolrFieldParser>();
 }
Пример #31
0
 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);
 }
Пример #32
0
        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!");
        }
Пример #33
0
        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>>();
        }
Пример #34
0
 public void Resolve_ISolrOperations()
 {
     var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
     var container = new WindsorContainer();
     container.AddFacility("solr", solrFacility);
     container.Resolve<ISolrOperations<Document>>();
 }
Пример #35
0
 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);
 }
Пример #36
0
 public void MappingValidationManager()
 {
     var solrFacility = new SolrNetFacility("http://localhost:8983/solr");
     var container = new WindsorContainer();
     container.AddFacility("solr", solrFacility);
     var validator = container.Resolve<IMappingValidator>();
 }
Пример #37
0
 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>>>();
 }
Пример #38
0
 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");
 }
Пример #39
0
 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);
 }
Пример #40
0
 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>());
 }
Пример #41
0
 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);
 }