Exemple #1
0
 public SingleDigitTermDefaultFilteredSearchEngine(
     IIndexNameProvider indexNameProvider,
     IEsSearcher <TestModel> searcher)
     : base(indexNameProvider, searcher, new SimpleSearchStrategy())
 {
     DefaultFilter = new SingleDigitTermFilter();
 }
Exemple #2
0
 /// <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;
 }
Exemple #3
0
 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
     };
 }
Exemple #5
0
        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
     });
 }
Exemple #7
0
 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;
        }
Exemple #9
0
        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>();
        }
Exemple #10
0
        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");
        }
Exemple #11
0
        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");
        }
Exemple #12
0
        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;
 }
Exemple #15
0
 public SitecoreUnitOfWork(IIndexNameProvider indexNameProvider)
 {
     _indexNameProvider = indexNameProvider;
 }
Exemple #16
0
 public EsSearcher(IEsClientProvider clientProvider, IIndexNameProvider indexNameProvider,
                   IOptions <ElasticsearchOptions> options)
     : this(clientProvider, indexNameProvider, options.Value)
 {
 }
Exemple #17
0
 public SearchEngineWithStrategyPredefinedFilter(
     IIndexNameProvider indexNameProvider,
     IEsSearcher <TestModel> searcher)
     : base(indexNameProvider, searcher, new WithPredefinedFilterSearchStrategy())
 {
 }
Exemple #18
0
 public SitecoreUnitOfWork(IIndexNameProvider indexNameProvider)
 {
     _indexNameProvider = indexNameProvider;
 }