Ejemplo n.º 1
0
        public LuceneDataProvider Build(string sessionAlias, Type modelType)
        {
            string             key = modelType.FullName + sessionAlias;
            LuceneDataProvider luceneDataProvider = cache.GetOrAdd(key, newKey => decorated.Build(sessionAlias, modelType));

            return(luceneDataProvider);
        }
Ejemplo n.º 2
0
        public static void Main()
        {
            var directory = new RAMDirectory();
            var writer    = new IndexWriter(directory, new StandardAnalyzer(Version.LUCENE_29), IndexWriter.MaxFieldLength.UNLIMITED);

            var provider = new LuceneDataProvider(directory, writer.Analyzer, Version.LUCENE_29, writer);

            // add some documents
            using (var session = provider.OpenSession <Article>())
            {
                session.Add(new Article {
                    Author = "John Doe", BodyText = "some body text", PublishDate = DateTimeOffset.UtcNow
                });
            }

            var articles = provider.AsQueryable <Article>();

            var threshold = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(30));

            var articlesByJohn = from a in articles
                                 where a.Author == "John Smith" && a.PublishDate > threshold
                                 orderby a.Title
                                 select a;

            var searchResults = from a in articles
                                where a.SearchText == "some search query"
                                select a;
        }
Ejemplo n.º 3
0
        public Indexer(DataStore dataStore)
        {
            _dataStore = dataStore;

            _provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);

            _dataStore.OnDispose += this.Dispose;
            Factory = Activator.CreateInstance;



            dataStore.CollectionChanged += (sender, args) =>
            {
                switch (args.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    AddDocumentToIndex(args.NewItems.Cast <object>().Single());
                    break;

                case NotifyCollectionChangedAction.Remove:
                    RemoveDocumentFromIndex(args.OldItems.Cast <object>().Single());
                    break;

                case NotifyCollectionChangedAction.Reset:
                    DeleteIndexFilesAndClearIndex(this, args);
                    Reinitialise(this, args);
                    break;

                default:
                    throw new NotImplementedException(args.ToString() + " not expected");
                }
            };
        }
Ejemplo n.º 4
0
        public ISessionProvider <LuceneSession <TModel> > Build(string sessionAlias)
        {
            LuceneDataProvider             luceneDataProvider = luceneDataProviderFactory.Build(sessionAlias, typeof(TModel));
            LuceneSessionProvider <TModel> sessionProvider    = new LuceneSessionProvider <TModel>(sessionAlias, luceneDataProvider, luceneMap);

            return(sessionProvider);
        }
Ejemplo n.º 5
0
        public static void Main()
        {
            var directory = new RAMDirectory();

            var provider = new LuceneDataProvider(directory, Version.LUCENE_30);

            // add some documents
            using (var session = provider.OpenSession <Article>())
            {
                session.Add(new Article {
                    Author = "John Doe", BodyText = "some body text", PublishDate = DateTimeOffset.UtcNow
                });
            }

            var articles = provider.AsQueryable <Article>();

            var threshold = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(30));

            var articlesByJohn = from a in articles
                                 where a.Author == "John Doe" && a.PublishDate > threshold
                                 orderby a.Title
                                 select a;

            Console.WriteLine("Articles by John Doe: " + articlesByJohn.Count());

            var searchResults = from a in articles
                                where a.SearchText == "some search query"
                                select a;

            Console.WriteLine("Search Results: " + searchResults.Count());
        }
        protected virtual IQueryable <LucenePackage> ApplySearchCriteria(SearchCriteria criteria, IQueryable <LucenePackage> packages)
        {
            var advancedQuerySyntax = criteria.SearchTerm.Any(c => AdvancedQueryCharacters.Contains(c));

            if (advancedQuerySyntax)
            {
                var queryParser = new NuGetQueryParser(LuceneDataProvider.CreateQueryParser <LucenePackage>())
                {
                    AllowLeadingWildcard = true
                };

                try
                {
                    var query = queryParser.Parse(criteria.SearchTerm);
                    return(packages.Where(query));
                }
                catch (ParseException ex)
                {
                    throw new InvalidSearchCriteriaException("Failed to parse query", ex);
                }
            }

            return(from
                   pkg in packages
                   where
                   ((pkg.Id == criteria.SearchTerm).Boost(5) ||
                    (pkg.SearchId == criteria.SearchTerm).Boost(4) ||
                    (pkg.Title == criteria.SearchTerm).Boost(3) ||
                    (pkg.Tags == criteria.SearchTerm).Boost(2) ||
                    (pkg.Authors.Contains(criteria.SearchTerm) || pkg.Owners.Contains(criteria.SearchTerm)).Boost(2) ||
                    (pkg.Files.Contains(criteria.SearchTerm)) ||
                    (pkg.Summary == criteria.SearchTerm || pkg.Description == criteria.SearchTerm)).AllowSpecialCharacters()
                   select
                   pkg);
        }
Ejemplo n.º 7
0
        public static void Main()
        {
            var directory = new RAMDirectory();

            var provider = new LuceneDataProvider(directory, Version.LUCENE_30);

            // add some documents
            using (var session = provider.OpenSession<Article>())
            {
                session.Add(new Article { Author = "John Doe", BodyText = "some body text", PublishDate = DateTimeOffset.UtcNow });
            }

            var articles = provider.AsQueryable<Article>();

            var threshold = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(30));

            var articlesByJohn = from a in articles
                          where a.Author == "John Smith" && a.PublishDate > threshold
                          orderby a.Title
                          select a;

            var searchResults = from a in articles
                                 where a.SearchText == "some search query"
                                 select a;

        }
Ejemplo n.º 8
0
        public void CommitInSessionAndDisposeProviderReleasesFiles()
        {
            var dir = "index." + DateTime.Now.Ticks;

            System.IO.Directory.CreateDirectory(dir);
            var provider = new LuceneDataProvider(FSDirectory.Open(dir), Version.LUCENE_30);

            using (provider)
            {
                using (var session = provider.OpenSession <Document>())
                {
                    session.Add(new Document {
                        Id = 1
                    });

                    session.Commit();

                    session.Add(new Document {
                        Id = 2
                    });
                }
            }

            TestDelegate call = () => System.IO.Directory.Delete(dir, true);

            Assert.That(call, Throws.Nothing);
        }
Ejemplo n.º 9
0
        public virtual void InitializeLucene()
        {
            directory = new RAMDirectory();
            writer    = new IndexWriter(directory, GetAnalyzer(version), IndexWriter.MaxFieldLength.UNLIMITED);

            provider = new LuceneDataProvider(directory, writer.Analyzer, version, writer);
        }
Ejemplo n.º 10
0
        public void Demo()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);

            using (var session = provider.OpenSession <Entity>())
            {
                session.Add(new Entity {
                    Text = "text is comprised of words"
                });
                session.Add(new Entity {
                    Text = "words compose text"
                });
                session.Add(new Entity {
                    Text = "completely unrelated"
                });
            }

            var mapper = new MoreLikeThisDocumentMapper <Entity>(Version.LUCENE_30);

            var query = provider.AsQueryable(mapper);

            var result = query.First(e => e.Text == "words");

            var moreLikeQuery   = mapper.MoreLike(result);
            var moreLikeResults = query.Where(moreLikeQuery).Select(e => e.Text).ToList();

            Assert.That(moreLikeResults, Is.EquivalentTo(new[] { "text is comprised of words", "words compose text" }));
        }
        public void Index(Directory directory)
        {
            IndexWriter.Unlock(directory);

            var provider     = new LuceneDataProvider(directory, Lucene.Net.Util.Version.LUCENE_30);
            var praticiens   = _praticienRepository.GetAll().Where(a => !a.IsIndexed).ToList();
            var itemsToIndex = new List <PraticienToIndexModel>();

            praticiens.ForEach(a =>
            {
                var item = PraticienWrapper.PraticienEntityToPraticienToIndexModel(a);

                itemsToIndex.Add(item);
            });

            var indexedIds = new List <string>();

            using (var session = provider.OpenSession <PraticienToIndexModel>())
            {
                foreach (var praticienToIndex in itemsToIndex)
                {
                    session.Add(praticienToIndex);
                    indexedIds.Add(praticienToIndex.Cin);
                    var indexedpraticien =
                        praticiens.First(
                            a =>
                            a.Cin.ToString().Equals(praticienToIndex.Cin, StringComparison.InvariantCultureIgnoreCase));
                    indexedpraticien.IsIndexed = true;
                    _praticienRepository.Update(indexedpraticien);
                }
                session.Commit();
            }
        }
Ejemplo n.º 12
0
        public IEnumerable <string> GetAvailableSearchFieldNames()
        {
            var propertyNames = LuceneDataProvider.GetIndexedPropertyNames <LucenePackage>();
            var aliasMap      = NuGetQueryParser.IndexedPropertyAliases;

            return(propertyNames.Except(aliasMap.Values).Union(aliasMap.Keys));
        }
        public void OpenSessionWithoutWriterCreatesIndexWhenMissing()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), new SimpleAnalyzer(), Version.LUCENE_29);

            TestDelegate call = () => provider.OpenSession<Item>();

            Assert.That(call, Throws.Nothing);
        }
Ejemplo n.º 14
0
        public void OpenSessionThrowsWhenReadOnly()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), new SimpleAnalyzer(), Version.LUCENE_29);

            TestDelegate call = () => provider.OpenSession <Item>();

            Assert.That(call, Throws.InvalidOperationException);
        }
Ejemplo n.º 15
0
        public void Initialize()
        {
            LuceneDataProvider.RegisterCacheWarmingCallback(UpdatePackageCount, () => new LucenePackage(FileSystem));

            UpdatePackageCount(LucenePackages);

            frameworkCompatibilityTool.InitializeKnownFrameworkShortNamesFromIndex(LuceneDataProvider);
        }
        public void OpenSessionThrowsWhenReadOnly()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), new SimpleAnalyzer(), Version.LUCENE_29);

            TestDelegate call = () => provider.OpenSession<Item>();

            Assert.That(call, Throws.InvalidOperationException);
        }
        public void OpenSessionWithoutWriterCreatesIndexWhenMissing()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), new SimpleAnalyzer(), Version.LUCENE_29);

            TestDelegate call = () => provider.OpenSession <Item>();

            Assert.That(call, Throws.Nothing);
        }
        public void OpenSessionThrowsWhenDocumentMapperDoesNotImplementModificationDetector()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), new SimpleAnalyzer(), Version.LUCENE_29);

            TestDelegate call = () => provider.OpenSession(MockRepository.GenerateStrictMock <IDocumentMapper <Item> >());

            Assert.That(call, Throws.ArgumentException.With.Property("ParamName").EqualTo("documentMapper"));
        }
Ejemplo n.º 19
0
        public LuceneCache(MemoryModel model)
        {
            var version = Version.LUCENE_30;

            _directory = GetDirectory(model);
            _writer    = new IndexWriter(_directory, new StandardAnalyzer(version), IndexWriter.MaxFieldLength.UNLIMITED);
            _provider  = new LuceneDataProvider(_directory, _writer.Analyzer, version, _writer);
        }
        public void OpenSessionThrowsWhenDocumentMapperDoesNotImplementModificationDetector()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), new SimpleAnalyzer(), Version.LUCENE_29);

            TestDelegate call = () => provider.OpenSession(MockRepository.GenerateStrictMock<IDocumentMapper<Item>>());

            Assert.That(call, Throws.ArgumentException.With.Property("ParamName").EqualTo("documentMapper"));
        }
Ejemplo n.º 21
0
        public override void InitializeLucene()
        {
            directory = new RAMDirectory();
            provider = new LuceneDataProvider(directory, Net.Util.Version.LUCENE_30);

            AddDocument(new Sample {DateTime = time1});
            AddDocument(new Sample {DateTime = time2});
            AddDocument(new Sample {DateTime = time3});
        }
Ejemplo n.º 22
0
        protected override UsersController CreateController()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);

            store = new UserStore(provider);
            return(new UsersController {
                Store = store
            });
        }
        public void DoesNotDisposeExternallyProvidesWriter()
        {
            var writer   = MockRepository.GenerateMock <IIndexWriter>();
            var provider = new LuceneDataProvider(new RAMDirectory(), new KeywordAnalyzer(), Version.LUCENE_30, writer, new object());

            provider.Dispose();

            writer.AssertWasNotCalled(w => w.Dispose());
        }
Ejemplo n.º 24
0
 public virtual LuceneDataProvider InitializeUsersDataProvider()
 {
     var usersIndexPath = Path.Combine(MapPathFromAppSetting("lucenePath", "~/App_Data/Lucene"), "Users");
     var directoryInfo = new DirectoryInfo(usersIndexPath);
     var dir = FSDirectory.Open(directoryInfo, new NativeFSLockFactory(directoryInfo));
     var provider = new LuceneDataProvider(dir, Version.LUCENE_30);
     provider.Settings.EnableMultipleEntities = false;
     return provider;
 }
        public void MergesAnalyzersForSessionsOfDifferentTypes()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);

            provider.OpenSession <A>();
            provider.OpenSession <B>();

            Assert.That(provider.Analyzer["Prop1"], Is.InstanceOf <SimpleAnalyzer>());
            Assert.That(provider.Analyzer["Prop2"], Is.InstanceOf <WhitespaceAnalyzer>());
        }
        public LuceneDataProvider Build()
        {
            Version version = currentVersion != default(Version) ? currentVersion : global::Lucene.Net.Util.Version.LUCENE_30;
            Analyzer analyzer = currentAnalyzer ?? new StandardAnalyzer(version);
            IndexWriter indexWriter = currentIndexWriter ?? new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);

            LuceneDataProvider provider = new LuceneDataProvider(directory, analyzer, version, indexWriter);
            provider.Settings.EnableMultipleEntities = false;
            return provider;
        }
Ejemplo n.º 27
0
 public void SetUp()
 {
     directory = new RAMDirectory();
     provider = new LuceneDataProvider(directory, Version.LUCENE_30);
     using (var session = provider.OpenSession<Item>())
     {
         session.Add(new Item { Id = "0", Enum = SampleEnum.Things, NumericEnum = SampleEnum.Things });
         session.Add(new Item { Id = "1", Enum = SampleEnum.Stuff, NumericEnum = SampleEnum.Stuff });
     }
 }
        public void ThrowsWhenExternallyCreatedWriterIsClosed()
        {
            var writer   = MockRepository.GenerateStrictMock <IIndexWriter>();
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30, writer, new object());

            writer.Expect(iw => iw.IsClosed).Return(true);

            TestDelegate call = () => provider.IndexWriter.ToString();

            Assert.That(call, Throws.InvalidOperationException);
        }
        public LuceneDataProvider Build()
        {
            Version     version     = currentVersion != default(Version) ? currentVersion : global::Lucene.Net.Util.Version.LUCENE_30;
            Analyzer    analyzer    = currentAnalyzer ?? new StandardAnalyzer(version);
            IndexWriter indexWriter = currentIndexWriter ?? new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);

            LuceneDataProvider provider = new LuceneDataProvider(directory, analyzer, version, indexWriter);

            provider.Settings.EnableMultipleEntities = false;
            return(provider);
        }
        public void GetPackagesSkipSelect()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);
            var options = SetUpRequestWithOptions("/api/odata/Packages?$select=Id&$skip=1");

            var queryable = provider.AsQueryable(() => new LucenePackage(_ => new MemoryStream())).Select(x => x.ToODataPackage());
            var result = options.ApplyTo(queryable, new ODataQuerySettings {HandleNullPropagation = HandleNullPropagationOption.False});
            
            Assert.That(result.OfType<object>().ToList().Count(), Is.EqualTo(0));
            repo.VerifyAll();
        }
 public IEnumerable<string> GetKnownFrameworkShortNamesFromIndex(LuceneDataProvider provider)
 {
     var termEnum = provider.IndexWriter.GetReader().Terms();
     while (termEnum.Next())
     {
         if (termEnum.Term.Field == SupportedFrameworksFieldName)
         {
             yield return termEnum.Term.Text;
         }
     }
 }
        public IEnumerable <string> GetKnownFrameworkShortNamesFromIndex(LuceneDataProvider provider)
        {
            var termEnum = provider.IndexWriter.GetReader().Terms();

            while (termEnum.Next())
            {
                if (termEnum.Term.Field == SupportedFrameworksFieldName)
                {
                    yield return(termEnum.Term.Text);
                }
            }
        }
Ejemplo n.º 33
0
        public void Execute()
        {
            using (var provider = new LuceneDataProvider(LuceneSearch.LuceneDirectory, Lucene.Net.Util.Version.LUCENE_30))
            {
                provider.Settings.EnableMultipleEntities = false;

                using (var session = provider.OpenSession<ContactDocument>())
                {
                    var mapped = LuceneSearch.MapContactToDocument(contact);
                    session.Delete(mapped);
                }
            }  
        }
Ejemplo n.º 34
0
        public void GetPackagesSkipSelect()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);
            var options  = SetUpRequestWithOptions("/api/odata/Packages?$select=Id&$skip=1");

            var queryable = provider.AsQueryable(() => new LucenePackage(_ => new MemoryStream())).Select(x => x.ToODataPackage());
            var result    = options.ApplyTo(queryable, new ODataQuerySettings {
                HandleNullPropagation = HandleNullPropagationOption.False
            });

            Assert.That(result.OfType <object>().ToList().Count(), Is.EqualTo(0));
            repo.VerifyAll();
        }
Ejemplo n.º 35
0
            public override void InitializeLucene()
            {
                directory = new RAMDirectory();
                provider  = new LuceneDataProvider(directory, version);

                modificationDetector = new PropertyChangedModificationDetector <ExampleEntity>();
                map = new ClassMap <ExampleEntity>(Version.LUCENE_30);
                map.Key(e => e.Id);
                map.Property(e => e.Name);

                AddDocument(new ExampleEntity {
                    Id = "entity 1", Name = "default"
                });
            }
        public void RegisterCacheWarmingCallback()
        {
            var directory = new RAMDirectory();
            var writer = new IndexWriter(directory, new CaseInsensitiveKeywordAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED);
            var provider = new LuceneDataProvider(directory, new SimpleAnalyzer(), Version.LUCENE_29, writer);

            var count = -1;

            provider.RegisterCacheWarmingCallback<Item>(q => count = q.Count());

            provider.Context.Reload();

            Assert.That(count, Is.EqualTo(0));
        }
        public void RegisterCacheWarmingCallback()
        {
            var directory = new RAMDirectory();
            var writer    = new IndexWriter(directory, new CaseInsensitiveKeywordAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED);
            var provider  = new LuceneDataProvider(directory, new SimpleAnalyzer(), Version.LUCENE_29, writer);

            var count = -1;

            provider.RegisterCacheWarmingCallback <Item>(q => count = q.Count());

            provider.Context.Reload();

            Assert.That(count, Is.EqualTo(0));
        }
Ejemplo n.º 38
0
 public void SetUp()
 {
     directory = new RAMDirectory();
     provider  = new LuceneDataProvider(directory, Version.LUCENE_30);
     using (var session = provider.OpenSession <Item>())
     {
         session.Add(new Item {
             Id = "0", Enum = SampleEnum.Things, NumericEnum = SampleEnum.Things
         });
         session.Add(new Item {
             Id = "1", Enum = SampleEnum.Stuff, NumericEnum = SampleEnum.Stuff
         });
     }
 }
Ejemplo n.º 39
0
        public override void InitializeLucene()
        {
            directory = new RAMDirectory();
            provider  = new LuceneDataProvider(directory, Net.Util.Version.LUCENE_30);

            AddDocument(new Sample {
                DateTime = time1
            });
            AddDocument(new Sample {
                DateTime = time2
            });
            AddDocument(new Sample {
                DateTime = time3
            });
        }
Ejemplo n.º 40
0
        protected virtual LuceneDataProvider InitializeUsersDataProvider(INuGetWebApiSettings settings)
        {
            var usersIndexPath = settings.LuceneUsersIndexPath;
            var directoryInfo  = new DirectoryInfo(usersIndexPath);
            var dir            = FSDirectory.Open(directoryInfo, new NativeFSLockFactory(directoryInfo));
            var provider       = new LuceneDataProvider(dir, Version.LUCENE_30)
            {
                Settings =
                {
                    EnableMultipleEntities = false,
                    MergeFactor            = 2
                }
            };

            return(provider);
        }
Ejemplo n.º 41
0
        public void TestBaseSetUp()
        {
            packagePathResolver = new Mock<IPackagePathResolver>();
            loader = new Mock<ILucenePackageRepository>(MockBehavior.Strict);
            fileSystem = new Mock<IFileSystem>();

            packagePathResolver.Setup(p => p.GetPackageDirectory(It.IsAny<IPackage>())).Returns("package-dir");
            packagePathResolver.Setup(p => p.GetPackageFileName(It.IsAny<IPackage>())).Returns((Func<IPackage, string>)(pkg => pkg.Id));

            var dir = new RAMDirectory();

            provider = new LuceneDataProvider(dir, Version.LUCENE_30);
            indexWriter = provider.IndexWriter;

            datasource = provider.AsQueryable(() => new LucenePackage(fileSystem.Object));
        }
        protected virtual void InitializeLucene()
        {
            LuceneDirectory = OpenLuceneDirectory(LuceneIndexPath);

            Provider = new LuceneDataProvider(LuceneDirectory, Version.LUCENE_30)
            {
                Settings =
                {
                    EnableMultipleEntities = false
                }
            };

            if (LuceneMergeFactor >= 2)
            {
                Provider.Settings.MergeFactor = LuceneMergeFactor;
            }
        }
Ejemplo n.º 43
0
        public void TestBaseSetUp()
        {
            packagePathResolver = new Mock <IPackagePathResolver>();
            loader     = new Mock <ILucenePackageRepository>(MockBehavior.Strict);
            fileSystem = new Mock <IFileSystem>();

            packagePathResolver.Setup(p => p.GetPackageDirectory(It.IsAny <IPackage>())).Returns("package-dir");
            packagePathResolver.Setup(p => p.GetPackageDirectory(It.IsAny <string>(), It.IsAny <SemanticVersion>())).Returns("package-dir");
            packagePathResolver.Setup(p => p.GetPackageFileName(It.IsAny <IPackage>())).Returns((Func <IPackage, string>)(pkg => pkg.Id));
            packagePathResolver.Setup(p => p.GetPackageFileName(It.IsAny <string>(), It.IsAny <SemanticVersion>())).Returns((Func <string, SemanticVersion, string>)((id, version) => id + "." + version));

            var dir = new RAMDirectory();

            provider    = new LuceneDataProvider(dir, Version.LUCENE_30);
            indexWriter = provider.IndexWriter;

            datasource = provider.AsQueryable(() => new LucenePackage(fileSystem.Object));
        }
Ejemplo n.º 44
0
        public void CommitInSessionAndDisposeProviderReleasesFiles()
        {
            var dir = "index." + DateTime.Now.Ticks;
            System.IO.Directory.CreateDirectory(dir);
            var provider = new LuceneDataProvider(FSDirectory.Open(dir), Version.LUCENE_30);
            using (provider)
            {
                using (var session = provider.OpenSession<Document>())
                {
                    session.Add(new Document { Id = 1 });

                    session.Commit();

                    session.Add(new Document { Id = 2 });
                }
            }

            TestDelegate call = () => System.IO.Directory.Delete(dir, true);
            Assert.That(call, Throws.Nothing);
        }
Ejemplo n.º 45
0
        public SearchResult<ContactDocument> Search(string searchQuery)
        {
            using (var provider = new LuceneDataProvider(LuceneSearch.LuceneDirectory, Version.LUCENE_30))
            {
                provider.Settings.EnableMultipleEntities = false;

                var queryParser = new MultiFieldParser<ContactDocument>(Version.LUCENE_30, 
                    new ReflectionDocumentMapper<ContactDocument>(Version.LUCENE_30));
                
                var query = queryParser.Parse(searchQuery);
                
                var queryable = provider.AsQueryable<ContactDocument>();
                var results = queryable.Where(query);
                
                return new SearchResult<ContactDocument>
                {
                    SearchTerm = searchQuery,
                    Results = results.ToList()
                };
            }    
        }
Ejemplo n.º 46
0
        public SearchResult<ContactDocument> Search(string searchQuery)
        {
            using (var provider = new LuceneDataProvider(LuceneSearch.LuceneDirectory, Version.LUCENE_30))
            {
                provider.Settings.EnableMultipleEntities = false;

                var queryParser = provider.CreateQueryParser<ContactDocument>();
                queryParser.DefaultSearchProperty = "All";
                queryParser.DefaultOperator = Lucene.Net.QueryParsers.QueryParser.Operator.AND;

                var query = queryParser.Parse(searchQuery);

                var queryable = provider.AsQueryable<ContactDocument>();

                var results = queryable.Where(query);

                return new SearchResult<ContactDocument>
                {
                    SearchTerm = searchQuery,
                    Results = results.ToList()
                };
            }
        }
Ejemplo n.º 47
0
        public void InitializeIndex()
        {
            var context = new AddressBookContext(connectionString);
            var contacts = context.Contacts
                .Include(c => c.Organisation)
                .Include(c => c.Department)
                .Include(c => c.Office.Address)
                .Include(c => c.PhoneNumbers)
                .Include(c => c.EmailAddresses);
            
            using (var provider = new LuceneDataProvider(LuceneSearch.LuceneDirectory, Lucene.Net.Util.Version.LUCENE_30))
            {
                provider.Settings.EnableMultipleEntities = false;

                using (var session = provider.OpenSession<ContactDocument>())
                {
                    var docs = contacts.Select(LuceneSearch.MapContactToDocument).ToArray();
                    
                    session.DeleteAll();
                    session.Add(docs);
                }
            }            
        }
Ejemplo n.º 48
0
 public void SetUp()
 {
     provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);
     store = new UserStore(provider);
 }
 public void InitializeKnownFrameworkShortNamesFromIndex(LuceneDataProvider provider)
 {
     AddKnownFrameworkShortNames(GetKnownFrameworkShortNamesFromIndex(provider));
 }
Ejemplo n.º 50
0
 public UserStore(LuceneDataProvider provider)
 {
     this.provider = provider;
 }
Ejemplo n.º 51
0
 public void SetUp()
 {
     directory = new RAMDirectory();
     provider = new LuceneDataProvider(directory, Version.LUCENE_30);
 }
        public void CreatesIndex()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);

            Assert.That(provider.AsQueryable<A>().Count(), Is.EqualTo(0));
        }
 public void ThrowsWhenExternallyCreatedWriterIsClosed()
 {
     var writer = MockRepository.GenerateStrictMock<IIndexWriter>();
     var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30, writer, new object());
     
     writer.Expect(iw => iw.IsClosed).Return(true);
     
     TestDelegate call = () => provider.IndexWriter.ToString();
     
     Assert.That(call, Throws.InvalidOperationException);
 }
Ejemplo n.º 54
0
        protected virtual LuceneDataProvider InitializeUsersDataProvider(INuGetWebApiSettings settings)
        {
            var usersIndexPath = settings.LuceneUsersIndexPath;
            var directoryInfo = new DirectoryInfo(usersIndexPath);
            var dir = FSDirectory.Open(directoryInfo, new NativeFSLockFactory(directoryInfo));
            var provider = new LuceneDataProvider(dir, Version.LUCENE_30)
            {
                Settings =
                {
                    EnableMultipleEntities = false,
                    MergeFactor = 2
                }
            };

            return provider;
        }
        protected virtual void InitializeLucene()
        {
            LuceneDirectory = OpenLuceneDirectory(LuceneIndexPath);

            Provider = new LuceneDataProvider(LuceneDirectory, Version.LUCENE_30)
            {
                Settings =
                {
                    EnableMultipleEntities = false
                }
            };

            if (LuceneMergeFactor >= 2)
            {
                Provider.Settings.MergeFactor = LuceneMergeFactor;
            }
        }
        public void DoesNotDisposeExternallyProvidesWriter()
        {
            var writer = MockRepository.GenerateMock<IIndexWriter>();
            var provider = new LuceneDataProvider(new RAMDirectory(), new KeywordAnalyzer(), Version.LUCENE_30, writer, new object());

            provider.Dispose();

            writer.AssertWasNotCalled(w => w.Dispose());
        }
        private void InitializeLucene()
        {
            LuceneDirectory = OpenLuceneDirectory(LuceneIndexPath);

            Provider = new LuceneDataProvider(LuceneDirectory, Version.LUCENE_30);
            Provider.Settings.EnableMultipleEntities = false;
        }
        public void MergesAnalyzersForSessionsOfDifferentTypes()
        {
            var provider = new LuceneDataProvider(new RAMDirectory(), Version.LUCENE_30);

            provider.OpenSession<A>();
            provider.OpenSession<B>();

            Assert.That(provider.Analyzer["Prop1"], Is.InstanceOf<SimpleAnalyzer>());
            Assert.That(provider.Analyzer["Prop2"], Is.InstanceOf<WhitespaceAnalyzer>());
        }
        private void InitializeLucene()
        {
            LuceneDirectory = OpenLuceneDirectory(LuceneIndexPath);

            Provider = new LuceneDataProvider(LuceneDirectory, Version.LUCENE_30);
        }