public void ShouldGetFreeProducts( SearchRepository sut, ISearchIndex searchIndex, IIndexable indexable, [Frozen]SearchProvider provider, Switcher<SearchProvider> switcher) { // arrange searchIndex .CreateSearchContext() .GetQueryable<ProductSearchResultItem>() .Returns(new[] { new ProductSearchResultItem { Free = true }, new ProductSearchResultItem { Free = false }, new ProductSearchResultItem { Free = true } }.AsQueryable()); ContentSearchManager.SearchConfiguration.Indexes["indexName"] = searchIndex; provider.GetContextIndexName(indexable, Arg.Any<ICorePipeline>()).Returns("indexName"); // act var products = sut.GetProducts(indexable); // assert Assert.Equal(2, products.Count()); }
public AzureUpdateContext(ISearchIndex index, ICommitPolicyExecutor commitPolicyExecutor) : this(index) { if (commitPolicyExecutor == null) throw new ArgumentNullException("commitPolicyExecutor"); this.CommitPolicyExecutor = commitPolicyExecutor; }
public override void Initialize(ISearchIndex searchIndex) { SearchIndexInitializableUtility.Initialize(searchIndex, new object[1] { this.IndexDocumentPropertyMapper }); base.Initialize(searchIndex); }
public IndexData(ISearchIndex index, IIndexable indexable, Document document, ConcurrentQueue<AzureField> fields) { this.Document = document; this.Fields = fields; this.AzureIndex = (IAzureProviderIndex)index; this.UpdateTerm = new AzureField("s_key", index.Configuration.IndexFieldStorageValueFormatter.FormatValueForIndexStorage(indexable.UniqueId.Value, "s_key"), BuildKeyField("s_key")); this.FullUpdateTerm = new AzureField("s_uniqueid", index.Configuration.IndexFieldStorageValueFormatter.FormatValueForIndexStorage(indexable.UniqueId.Value, "s_uniqueid"), AzureFieldBuilder.BuildField("s_uniqueid", index.Configuration.IndexFieldStorageValueFormatter.FormatValueForIndexStorage(indexable.UniqueId.Value, "s_uniqueid"), this.AzureIndex)); this.Culture = indexable.Culture; }
private void DeleteItem(ISearchIndex index, IIndexableId indexableId, string itemPath) { WriteVerbose($"Removing item {itemPath} from index {index.Name}."); var job = IndexCustodian.DeleteItem(index, indexableId); if (job != null && AsJob) { WriteVerbose($"Background job created: {job.Name}"); WriteObject(job); } }
protected TraktCommandBase( ITraktApiClient traktApiClient, ISearchRepository searchRepository, ISearchIndex searchIndex, ILogger logger) { _searchRepository = searchRepository; _searchIndex = searchIndex; _logger = logger; TraktApiClient = traktApiClient; }
public bool ShouldUpdateIndex(ISearchIndex searchIndex, ISearchIndexSummary searchIndexSummary) { // Always update when index has been explicitly set as to update if (_indexesToUpdate != null && _indexesToUpdate.Contains(searchIndex)) { return(true); } // Only update when index is not empty: updating an empty index would trigger a rebuild. return(searchIndexSummary.NumberOfDocuments > 0); }
public AzureUpdateContext(ISearchIndex index) { Assert.ArgumentNotNull(index, "index"); Index = index; this.contentSearchSettings = index.Locator.GetInstance<IContentSearchConfigurationSettings>(); IsParallel = this.contentSearchSettings.IsParallelIndexingEnabled(); this.ParallelOptions = new ParallelOptions(); int num = this.contentSearchSettings.ParallelIndexingMaxThreadLimit(); if (num > 0) this.ParallelOptions.MaxDegreeOfParallelism = num; this.CommitPolicyExecutor = new NullCommitPolicyExecutor(); }
public AzureUpdateContext(ISearchIndex index) { Assert.ArgumentNotNull((object)index, "index"); Index = index; IsParallel = false; //this.ParallelOptions = new ParallelOptions(); //int num = this.contentSearchSettings.ParallelIndexingMaxThreadLimit(); //if (num > 0) // this.ParallelOptions.MaxDegreeOfParallelism = num; this.CommitPolicyExecutor = (ICommitPolicyExecutor)new NullCommitPolicyExecutor(); }
public QuerySearchIndexMusicVideosHandler( ISearchIndex searchIndex, IMusicVideoRepository musicVideoRepository, IPlexPathReplacementService plexPathReplacementService, IJellyfinPathReplacementService jellyfinPathReplacementService, IEmbyPathReplacementService embyPathReplacementService) { _searchIndex = searchIndex; _musicVideoRepository = musicVideoRepository; _plexPathReplacementService = plexPathReplacementService; _jellyfinPathReplacementService = jellyfinPathReplacementService; _embyPathReplacementService = embyPathReplacementService; }
public SynchronizePlexLibrariesHandler( IMediaSourceRepository mediaSourceRepository, IPlexSecretStore plexSecretStore, IPlexServerApiClient plexServerApiClient, ILogger <SynchronizePlexLibrariesHandler> logger, ISearchIndex searchIndex) { _mediaSourceRepository = mediaSourceRepository; _plexSecretStore = plexSecretStore; _plexServerApiClient = plexServerApiClient; _logger = logger; _searchIndex = searchIndex; }
public void Items_IndexMatchDb_ReturnsAllItems([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem) { //arrange var results = GetResults(contentItems); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel() { Rendering = new Rendering() { DataSource = "notEmpty" } }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(contentItems.Length); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public void Initialize(ISearchIndex searchIndex) { // Store index m_index = searchIndex; // Create Twitter token var token = new Token( ConfigurationManager.AppSettings["accessToken"], ConfigurationManager.AppSettings["accessTokenSecret"], ConfigurationManager.AppSettings["consumerKey"], ConfigurationManager.AppSettings["consumerSecret"]); // Start twitter streaming thread var task = new Task(() => StartTwitterStream(token)); task.Start(); }
public void Items_NotLatestItemVersionExists_ReturnsOnlyLatestItems([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem) { //arrange var results = GetResults(contentItems).ToArray(); results.First().IsLatestVersion = false; InitIndexes(index, searchProvider, results.AsQueryable()); var renderingModel = new QueryableDatasourceRenderingModel() { Rendering = new Rendering() { DataSource = "notEmpty" } }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(contentItems.Length-1); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
private void RebuildIndex(ISearchIndex index, bool isRemoteIndex = false) { if (IndexCustodian.IsRebuilding(index)) { WriteVerbose(String.Format("Skipping full index rebuild for {0} because it's already running.", index.Name)); return; } const string message = "Starting full index rebuild for {0}."; WriteVerbose(String.Format(message, index.Name)); var job = (isRemoteIndex) ? IndexCustodian.FullRebuildRemote(index) : IndexCustodian.FullRebuild(index); if (job == null) return; WriteVerbose(String.Format("Background job created: {0}", job.Name)); if (AsJob) { WriteObject(job); } }
public void Items_DifferentItemLanguageExists_ReturnsOnlyContextLanguage([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange var results = GetResults(contentItems).ToArray(); results.First().Language = "noncontext"; renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); InitIndexes(index, searchProvider, results.AsQueryable()); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(contentItems.Length - 1); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public void Items_NotLatestItemVersionExists_ReturnsOnlyLatestItems([Content] DbItem[] contentItems, ISearchIndex index, [Frozen] SearchProvider searchProvider, Switcher<SearchProvider> searchProviderSwitcher, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange var results = GetResults(contentItems).ToArray(); results.First().IsLatestVersion = false; renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); InitIndexes(index, searchProvider, results.AsQueryable()); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(contentItems.Length - 1); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public static void Initialize(ISearchIndex index, params object[] instances) { TypeActionHelper.Call<ISearchIndexInitializable>(i => i.Initialize(index), instances); }
public AzureUpdateContext(ISearchIndex index, ICommitPolicy commitPolicy, ICommitPolicyExecutor commitPolicyExecutor) : this(index, commitPolicyExecutor) { }
public void Items_IndexMatchDb_ReturnsAllItems([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange var results = GetResults(contentItems); renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(contentItems.Length); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public void Items_StandardValuesExistsInContentTree_IgnoresStandartValueByName(Db db, ISearchIndex index, [Frozen] SearchProvider searchProvider, Switcher<SearchProvider> searchProviderSwitcher, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange var id = ID.NewID; var dbItem = new DbItem(Sitecore.Constants.StandardValuesItemName, id); db.Add(dbItem); renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>().Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); var results = GetResults(new List<DbItem> { dbItem }); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items.ToArray(); //assert items.Count().Should().Be(0); }
private static void InitIndexes(ISearchIndex index, SearchProvider searchProvider, IQueryable<SearchResultItem> results) { ContentSearchManager.SearchConfiguration.Indexes.Clear(); searchProvider?.GetContextIndexName(Arg.Any<IIndexable>(), Arg.Any<ICorePipeline>()).Returns("CustomIndexName"); var providerSearchContext = Substitute.For<IProviderSearchContext>(); index.ReturnsForAll(providerSearchContext); providerSearchContext.GetQueryable<SearchResultItem>(Arg.Any<IExecutionContext[]>()).Returns(results); ContentSearchManager.SearchConfiguration.Indexes.Add("CustomIndexName", index); }
public void Items_IndexHaveNonexistentItems_ReturnsExistentItems([Content] DbItem[] contentItems, DbItem brokenItem, List<DbItem> indexedItems, ISearchIndex index, string indexName, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem) { //arrange indexedItems.AddRange(contentItems); indexedItems.Add(brokenItem); var results = GetResults(indexedItems); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel() { Rendering = new Rendering() { DataSource = "notEmpty" } }; //act var items = renderingModel.Items.ToArray(); //assert items.Count().Should().Be(contentItems.Length); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public StartsWith(ISearchIndex searchIndex, string val) { SearchIndex = searchIndex; Val = val; }
public void Items_IndexEmpty_ReturnsEmptyCollection(List<DbItem> indexedItems, ISearchIndex index, string indexName, [Frozen] SearchProvider searchProvider, Switcher<SearchProvider> searchProviderSwitcher, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange InitIndexes(index, searchProvider, new List<SearchResultItem>().AsQueryable()); renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(0); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public void Items_StandardValuesExists_IgnoresItemsUnderTemplates(Db db, ISearchIndex index, [Frozen] SearchProvider searchProvider, Switcher<SearchProvider> searchProviderSwitcher, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange var templateID = ID.NewID; db.Add(new DbTemplate("Sample", templateID)); var stdValues = db.GetItem("/sitecore/templates/Sample").Add(Sitecore.Constants.StandardValuesItemName, new TemplateID(templateID)); renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); var results = GetResults(new List<DbItem> { new DbItem(Sitecore.Constants.StandardValuesItemName, stdValues.ID) }); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items.ToArray(); //assert items.Count().Should().Be(0); }
public void AddIndex(ISearchIndex index) { Assert.ArgumentNotNull(index, "index"); Assert.IsFalse((this.Indexes.ContainsKey(index.Name) ? 1 : 0) != 0, "An index with the name \"{0}\" have already been added.", index.Name); this.Indexes[index.Name] = index; if (index.Configuration == null) { XmlNode configNode = this.factory.GetConfigNode(this.DefaultIndexConfigurationPath); if (configNode == null) throw new ConfigurationException("Index must have a ProviderIndexConfiguration associated with it. Please check your config."); var config = this.factory.CreateObject<ProviderIndexConfiguration>(configNode); if (config == null) throw new ConfigurationException("Unable to create configuration object from path specified in setting 'ContentSearch.AzureDefaultIndexConfigurationPath'. Please check your config."); index.Configuration = config; } if (!index.Configuration.InitializeOnAdd) return; index.Initialize(); }
public void Items_ItemTemplateSet_FiltersByTemplateId(Db db, [Content] DbTemplate templateItem, [Content] DbItem[] contentItems, ISearchIndex index, [Frozen] SearchProvider searchProvider, Switcher<SearchProvider> searchProviderSwitcher, string indexName, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange var dbItem = new DbItem("templated", ID.NewID, templateItem.ID); db.Add(dbItem); var dbItems = contentItems.ToList(); dbItems.Add(dbItem); var results = GetResults(dbItems); renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { Rendering = new Rendering(), DatasourceString = "notEmpty", DatasourceTemplate = db.GetItem(templateItem.ID) }; //act var items = renderingModel.Items; //assert items.Count().Should().Be(1); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public ContentSearchIndex(ISearchIndex index) { Assert.ArgumentNotNull(index, "index"); _searchIndex = index; }
public void Items_ItemTemplateSet_FiltersByTemplateId(Db db, [Content] DbTemplate templateItem, [Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, string indexName, [Content] Item renderingItem) { //arrange var dbItem = new DbItem("templated", ID.NewID, templateItem.ID); db.Add(dbItem); var dbItems = contentItems.ToList(); dbItems.Add(dbItem); var results = GetResults(dbItems); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel() {Rendering = new Rendering() {DataSource = "notEmpty"} }; renderingModel.DatasourceTemplate = db.GetItem(templateItem.ID); //act var items = renderingModel.Items; //assert items.Count().Should().Be(1); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public SearchManager(ISearchIndex masterIndex, ISearchIndex coreIndex, ISearchIndex webIndex) { _masterIndex = masterIndex; _coreIndex = coreIndex; _webIndex = webIndex; }
public void Items_EmptyDatasource_ReturnsEmptyCollection([ResolvePipeline("getRenderingDatasource")] EmptyPipeline processor, List<DbItem> indexedItems,SearchProvider searchProvider, ISearchIndex index, string indexName, [Content] Item renderingItem) { //arrange InitIndexes(index, searchProvider, new List<SearchResultItem>().AsQueryable()); var renderingModel = new QueryableDatasourceRenderingModel() { Rendering = new Rendering()}; //act var items = renderingModel.Items; //assert items.Count().Should().Be(0); index.CreateSearchContext().DidNotReceiveWithAnyArgs(); }
public IProviderSearchContext CreateContext(ISearchIndex index) { return ContentSearchManager.GetIndex(index.Name).CreateSearchContext(); }
public void Items_IndexHaveNonexistentItems_ReturnsExistentItems([Content] DbItem[] contentItems, DbItem brokenItem, List<DbItem> indexedItems, ISearchIndex index, string indexName, [Frozen] SearchProvider searchProvider, Switcher<SearchProvider> searchProviderSwitcher, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository) { //arrange indexedItems.AddRange(contentItems); indexedItems.Add(brokenItem); renderingPropertiesRepository.Get<QueryableDatasourceRenderingSettings>() .Returns(new QueryableDatasourceRenderingSettings { SearchResultsLimit = 10 }); var results = GetResults(indexedItems); InitIndexes(index, searchProvider, results); var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository) { DatasourceString = "notEmpty" }; //act var items = renderingModel.Items.ToArray(); //assert items.Count().Should().Be(contentItems.Length); index.CreateSearchContext().ReceivedWithAnyArgs(1); }
public override void Initialize(ISearchIndex index) { base.Initialize(index); var msg = string.Format("[Index={0}] Initializing XmlDatabaseCrawler. DB:{1} / Root:{2}", index.Name, base.Database, base.Root); CrawlingLog.Log.Info(msg, null); }