Esempio n. 1
0
        private void RunIndex(MetadataIndexDoc metadataIndexDoc, string culture)
        {
            var currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture;

            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            if (culture == Culture.EnglishCode)
            {
                SetEnglishIndexCores();
            }
            else
            {
                SetNorwegianIndexCores();
            }

            if (metadataIndexDoc.Type != null && (metadataIndexDoc.Type.ToLower() == "service" || metadataIndexDoc.Type.ToLower() == "servicelayer"))
            {
                _indexerService.Index(_indexDocumentCreator.ConvertIndexDocToService(metadataIndexDoc));
            }
            else if (metadataIndexDoc.Type != null && metadataIndexDoc.Type.ToLower() == "software")
            {
                _indexerApplication.Index(_indexDocumentCreator.ConvertIndexDocToApplication(metadataIndexDoc));
            }
            else
            {
                _indexer.Index(metadataIndexDoc);
            }

            _indexerAll.Index(_indexDocumentCreator.ConvertIndexDocToMetadataAll(metadataIndexDoc));

            System.Threading.Thread.CurrentThread.CurrentCulture = currentCulture;
        }
Esempio n. 2
0
        public void ShouldIndexSingleMetadata()
        {
            const string uuid = "12345-123545-1231245-1231232";

            var geoNorgeMock   = new Mock <IGeoNorge>();
            var indexerMock    = new Mock <Indexer>();
            var indexerMockAll = new Mock <IndexerAll>();
            var indexerAppMock = new Mock <IndexerApplication>();
            var indexerSerMock = new Mock <IndexerService>();

            var indexDocumentCreator = new Mock <IndexDocumentCreator>();
            var culture = Culture.NorwegianCode;

            geoNorgeMock.Setup(g => g.GetRecordByUuid(uuid)).Returns(CreateDummyMetadata);
            var metadataIndexDoc = new MetadataIndexDoc();

            indexDocumentCreator.Setup(i => i.CreateIndexDoc(It.IsAny <SimpleMetadata>(), geoNorgeMock.Object, culture))
            .Returns(metadataIndexDoc);

            var errorMock = new Mock <IErrorService>();
            var indexer   = new SolrMetadataIndexer(geoNorgeMock.Object, indexerMock.Object, indexerAppMock.Object, indexerSerMock.Object, indexDocumentCreator.Object, errorMock.Object, indexerMockAll.Object);

            indexer.RunIndexingOn(uuid);

            geoNorgeMock.Verify(g => g.GetRecordByUuid(uuid));

            indexerMock.Verify(i => i.Index(metadataIndexDoc));
        }
Esempio n. 3
0
        public void RunIndexingOn(string uuid)
        {
            try
            {
                SetNorwegianIndexCores();
                RemoveIndexDocument(uuid);

                SetEnglishIndexCores();
                RemoveIndexDocument(uuid);

                MD_Metadata_Type metadata = _geoNorge.GetRecordByUuid(uuid);

                if (metadata != null)
                {
                    SetNorwegianIndexCores();
                    MetadataIndexDoc metadataIndexDoc = _indexDocumentCreator.CreateIndexDoc(new SimpleMetadata(metadata), _geoNorge, Culture.NorwegianCode);
                    RunIndex(metadataIndexDoc, Culture.NorwegianCode);

                    SetEnglishIndexCores();
                    metadataIndexDoc = _indexDocumentCreator.CreateIndexDoc(new SimpleMetadata(metadata), _geoNorge, Culture.EnglishCode);
                    RunIndex(metadataIndexDoc, Culture.EnglishCode);
                }
            }
            catch (Exception exception)
            {
                Log.Error("Error in UUID: " + uuid + "", exception);
                _errorService.AddError(uuid, exception);
            }
        }
        public MetadataIndexDoc GetMetadata(string uuid)
        {
            MetadataIndexDoc metadata = null;
            var solrInstance          = MvcApplication.indexContainer.Resolve <ISolrOperations <MetadataIndexDoc> >(CultureHelper.GetIndexCore(SolrCores.Metadata));

            ISolrQuery query = new SolrQuery("uuid:" + uuid);

            try
            {
                SolrQueryResults <MetadataIndexDoc> queryResults = solrInstance.Query(query, new SolrNet.Commands.Parameters.QueryOptions
                {
                    Fields = new[] { "uuid", "title", "abstract", "purpose", "type", "theme", "organization", "organization_seo_lowercase", "placegroups", "organizationgroup",
                                     "topic_category", "organization_logo_url", "thumbnail_url", "distribution_url", "distribution_protocol", "distribution_name", "product_page_url", "date_published", "date_updated", "nationalinitiative",
                                     "score", "ServiceDistributionProtocolForDataset", "ServiceDistributionUrlForDataset", "ServiceDistributionNameForDataset", "DistributionProtocols", "legend_description_url", "product_sheet_url", "product_specification_url", "area", "datasetservice", "popularMetadata", "bundle", "servicelayers", "accessconstraint", "servicedataset", "otherconstraintsaccess", "dataaccess", "ServiceDistributionUuidForDataset", "ServiceDistributionAccessConstraint", "parentidentifier", "serie", "seriedatasets", "distributions" }
                });

                metadata = queryResults.FirstOrDefault();
            }
            catch (Exception) { }

            return(metadata);
        }
Esempio n. 5
0
 public void Index(MetadataIndexDoc doc)
 {
     Log.Info(string.Format("Indexing single document uuid={0} title={1}", doc.Uuid, doc.Title));
     _solr.Add(doc);
     _solr.Commit();
 }