public SingleDigitTermDefaultFilteredSearchEngine( IIndexNameProvider indexNameProvider, IEsSearcher <TestModel> searcher) : base(indexNameProvider, searcher, new SimpleSearchStrategy()) { DefaultFilter = new SingleDigitTermFilter(); }
/// <summary> /// Initializes a new instance of <see cref="SearchEngine"/> /// </summary> public EsSearchEngine(IIndexNameProvider indexNameProvider, IEsSearcher <TDoc> searcher, IEsSearchEngineStrategy <TDoc> defaultStrategy) { _indexName = indexNameProvider.Provide <TDoc>(); _searcher = searcher ?? throw new ArgumentNullException(nameof(searcher)); _defaultStrategy = defaultStrategy; }
public DefaultReversedSearchEngine( IIndexNameProvider indexNameProvider, IEsSearcher <TestModel> searcher) : base(indexNameProvider, searcher, new SimpleSearchStrategy()) { DefaultSort = new RevertSort(); }
public static SitecoreDataContext BeginDataContext(IIndexNameProvider indexNameProvider = null, string database = null, CultureInfo cultureInfo = null) { return new SitecoreDataContext(indexNameProvider) { _database = database, _cultureInfo = cultureInfo }; }
public EsSearcher(IEsClientProvider clientProvider, IIndexNameProvider indexNameProvider, ElasticsearchOptions options) { _indexNameProvider = indexNameProvider; _options = options; var client = clientProvider.Provide(); _logic = new EsLogic <TDoc>(client); }
public static SitecoreDataContext BeginDataContext(IIndexNameProvider indexNameProvider = null, string database = null, CultureInfo cultureInfo = null) { return(new SitecoreDataContext(indexNameProvider) { _database = database, _cultureInfo = cultureInfo }); }
public SimpleSearchEngine( IIndexNameProvider indexNameProvider, IEsSearcher <TestModel> searcher) : base(indexNameProvider, searcher, new SimpleSearchStrategy()) { RegisterNamedFilter("single-digit", new SingleDigitTermFilter()); RegisterNamedSort("revert", new RevertSort()); RegisterNamedSort("norm", new NormSort()); }
public SearchResultRepository(ISearchQueryElementProvider searchQueryElementProvider, IIndexNameProvider indexNameProvider, ISearchQueryPredicateBuilder <T> searchQueryPredicateBuilder) { Assert.ArgumentNotNull(searchQueryElementProvider, "searchQueryElementProvider"); Assert.ArgumentNotNull(indexNameProvider, "indexNameProvider"); Assert.ArgumentNotNull(searchQueryPredicateBuilder, "searchQueryPredicateBuilder"); SearchQueryElementProvider = searchQueryElementProvider; IndexNameProvider = indexNameProvider; SearchQueryPredicateBuilder = searchQueryPredicateBuilder; }
public void Ctor_SearchQueryPredicateBuilderIsNull_ThrowsException( ISearchQueryElementProvider elementProvider, IIndexNameProvider indexNameProvider) { // Arrange ISearchQueryPredicateBuilder <TestIndexableEntity> predicateBuilder = null; // Act Action act = () => new SearchResultRepository <TestIndexableEntity>(elementProvider, indexNameProvider, predicateBuilder); // Assert act.ShouldThrow <ArgumentNullException>(); }
public void GetSearchResult_ItemsWithDifferentProperties_ReturnItemsFulfillingPredicate( ISearchQueryElementProvider elementProvider, IIndexNameProvider indexNameProvider, ISearchQueryPredicateBuilder <TestIndexableEntity> predicateBuilder, ISearchIndex searchIndex, [Frozen] SearchProvider provider, Switcher <SearchProvider> switcher) { // Arrange elementProvider .GetSearchQueryElementRoot <TestIndexableEntity>() .Returns(new SearchQueryGrouping <TestIndexableEntity>(LogicalOperator.And)); indexNameProvider .IndexName .Returns("predicateTestIndex"); predicateBuilder .GetOutput() .Returns(x => x.Name.Contains("F")); var queryable = new QueryProviderStub <TestIndexableEntity>(new[] { CreateTestIndexableEntity("Faucet", paths: new List <ID> { ItemIDs.ContentRoot }), CreateTestIndexableEntity("Clamp", paths: new List <ID> { ItemIDs.ContentRoot }) }.AsQueryable()); searchIndex .CreateSearchContext() .GetQueryable <TestIndexableEntity>() .Returns(queryable); ContentSearchManager.SearchConfiguration.Indexes[indexNameProvider.IndexName] = searchIndex; var sut = new SearchResultRepository <TestIndexableEntity>(elementProvider, indexNameProvider, predicateBuilder); // Act var actual = sut.GetSearchResult(new SearchCriteria()); // Assert actual.TotalSearchResults.ShouldBeEquivalentTo(1); actual.Hits.First().Name.Should().Contain("F"); }
public void GetSearchResult_ItemsWithDiffentVersions_ReturnItemsWithLatestVersion( ISearchQueryElementProvider elementProvider, IIndexNameProvider indexNameProvider, ISearchQueryPredicateBuilder <TestIndexableEntity> predicateBuilder, ISearchIndex searchIndex, [Frozen] SearchProvider provider, Switcher <SearchProvider> switcher) { // Arrange indexNameProvider .IndexName .Returns("languageTestIndex"); predicateBuilder .GetOutput() .Returns(x => true); var queryable = new QueryProviderStub <TestIndexableEntity>(new[] { CreateTestIndexableEntity("Faucet", paths: new List <ID> { ItemIDs.ContentRoot }, latestVersion: true), CreateTestIndexableEntity("Fence", paths: new List <ID> { ItemIDs.ContentRoot }, latestVersion: false), }.AsQueryable()); searchIndex .CreateSearchContext() .GetQueryable <TestIndexableEntity>() .Returns(queryable); ContentSearchManager.SearchConfiguration.Indexes[indexNameProvider.IndexName] = searchIndex; var sut = new SearchResultRepository <TestIndexableEntity>(elementProvider, indexNameProvider, predicateBuilder); // Act var actual = sut.GetSearchResult(new SearchCriteria()); // Assert actual.TotalSearchResults.ShouldBeEquivalentTo(1); actual.Hits.First().Fields["_latestversion"].Should().Be("1"); }
public void GetSearchResult_ItemsBothContentAndNonContent_ReturnContentItems( ISearchQueryElementProvider elementProvider, IIndexNameProvider indexNameProvider, ISearchQueryPredicateBuilder <TestIndexableEntity> predicateBuilder, ISearchIndex searchIndex, [Frozen] SearchProvider provider, Switcher <SearchProvider> switcher) { // Arrange indexNameProvider .IndexName .Returns("contentItemTestIndex"); predicateBuilder .GetOutput() .Returns(x => true); var queryable = new QueryProviderStub <TestIndexableEntity>(new[] { CreateTestIndexableEntity("Faucet", paths: new List <ID> { ItemIDs.ContentRoot }), CreateTestIndexableEntity("Fence") }.AsQueryable()); searchIndex .CreateSearchContext() .GetQueryable <TestIndexableEntity>() .Returns(queryable); ContentSearchManager.SearchConfiguration.Indexes[indexNameProvider.IndexName] = searchIndex; var sut = new SearchResultRepository <TestIndexableEntity>(elementProvider, indexNameProvider, predicateBuilder); // Act var actual = sut.GetSearchResult(new SearchCriteria()); // Assert actual.TotalSearchResults.ShouldBeEquivalentTo(1); actual.Hits.First().Paths.Should().Contain(ItemIDs.ContentRoot); }
public SitecoreDataContext(IIndexNameProvider indexNameProvider) : base() { _indexNameProvider = indexNameProvider; }
public SitecoreDataContext(IIndexNameProvider indexNameProvider) : base() { _indexNameProvider = indexNameProvider; }
public SitecoreUnitOfWork(IIndexNameProvider indexNameProvider) { _indexNameProvider = indexNameProvider; }
public EsSearcher(IEsClientProvider clientProvider, IIndexNameProvider indexNameProvider, IOptions <ElasticsearchOptions> options) : this(clientProvider, indexNameProvider, options.Value) { }
public SearchEngineWithStrategyPredefinedFilter( IIndexNameProvider indexNameProvider, IEsSearcher <TestModel> searcher) : base(indexNameProvider, searcher, new WithPredefinedFilterSearchStrategy()) { }
public SitecoreUnitOfWork(IIndexNameProvider indexNameProvider) { _indexNameProvider = indexNameProvider; }