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; }
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)); }
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); }
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(); }