public void test_with_write_and_delete_document()
        {
            var lueceneSearchProvider = new LuceneSearchProvider();

            var spaceOne = new SpaceObject
            {
                Id = Guid.NewGuid(),
                SpaceName = "技术空间",
                FileCount = 1,
                ParentId = Guid.NewGuid().ToString(),
                SpaceSize = 1024,
                CreateTime = DateTime.Now,
                UpdateTime = DateTime.Now,
                CreateUserId = "5",
                CreateUserName = "******",
            };

            Stopwatch stopWatcher = new Stopwatch();
            stopWatcher.Start();

            lueceneSearchProvider.IndexDirectory = "write_delete_space";
            lueceneSearchProvider.Add(spaceOne);

            var results = lueceneSearchProvider.Query<SpaceObject>("空间");
            Assert.IsTrue(results.Count>= 1);

            lueceneSearchProvider.Delete(spaceOne);
            results = lueceneSearchProvider.Query<SpaceObject>("空间");
            Assert.AreEqual(results.Count, 0);

            Console.WriteLine(results.Count);
        }
        public void performance_test_with_writeindex()
        {
            LuceneSearchProvider _lueceneSearchProvider = new LuceneSearchProvider();

            List<SpaceObject> list = new List<SpaceObject>();
            for (int i = 0; i < 100000; i++)
            {
                var space = new SpaceObject
                              {
                                  Id = Guid.NewGuid(),
                                  SpaceName = "技术空间",
                                  FileCount = 1,
                                  ParentId = Guid.NewGuid().ToString(),
                                  SpaceSize = 1024,
                                  CreateTime = DateTime.Now,
                                  UpdateTime = DateTime.Now,
                                  CreateUserId = "5",
                                  CreateUserName = "******",

                              };
                list.Add(space);
            }

            Stopwatch stopWatcher = new Stopwatch();
            stopWatcher.Start();

            _lueceneSearchProvider.AddList(list, true);

            stopWatcher.Stop();
            Console.WriteLine("创建时间为<毫秒>:" + stopWatcher.ElapsedMilliseconds);
        }
        public void should_query_with_special_string()
        {
            LuceneSearchProvider lueceneSearchProvider = new LuceneSearchProvider();

            var spaceOne = new SpaceObject
            {
                Id = Guid.NewGuid(),
                SpaceName = "技术空间",
                FileCount = 1,
                ParentId = Guid.NewGuid().ToString(),
                SpaceSize = 1024,
                CreateTime = DateTime.Now,
                UpdateTime = DateTime.Now,
                CreateUserId = "5",
                CreateUserName = "******",

            };
            lueceneSearchProvider.Add(spaceOne);

            var results = lueceneSearchProvider.Query<SpaceObject>("*****");
            Assert.AreEqual(results.Count, 0);

            results = lueceneSearchProvider.Query<SpaceObject>("#@RF**__++||");
            Assert.AreEqual(results.Count, 0);

            results = lueceneSearchProvider.Query<SpaceObject>(" || __    ");
            Assert.AreEqual(results.Count, 0);
        }
        public void should_query_with_null_query()
        {
            LuceneSearchProvider lueceneSearchProvider = new LuceneSearchProvider();

            string query = null;
            var results = lueceneSearchProvider.Query<SpaceObject>(query);
            Assert.AreEqual(results.Count, 0);
        }
        /// <summary>
        /// Provide search with the specified query.
        /// </summary>
        /// <param name="options">The search options.</param>
        /// <returns>The search result.</returns>
        public virtual GridData Search(SearchOptions options)
        {
            var builder = new CatalogQueryBuilder();
              var query = builder.BuildQuery(options);
              var provider = new LuceneSearchProvider();

              return new ItemResultDataConverter().Convert(provider.Search(query), options.GridColumns);
        }
        public void should_query_with_empty_string()
        {
            LuceneSearchProvider lueceneSearchProvider = new LuceneSearchProvider();

            var results = lueceneSearchProvider.Query<SpaceObject>(string.Empty);
            Assert.AreEqual(results.Count, 0);

            results = lueceneSearchProvider.Query<SpaceObject>("      ");
            Assert.AreEqual(results.Count, 0);
        }
        public void test_with_write_index_singleton()
        {
            LuceneSearchProvider lueceneSearchProvider = new LuceneSearchProvider();

            var spaceOne = new SpaceObject
            {
                Id = Guid.NewGuid(),
                SpaceName = "技术空间",
                FileCount = 1,
                ParentId = Guid.NewGuid().ToString(),
                SpaceSize = 1024,
                CreateTime = DateTime.Now,
                UpdateTime = DateTime.Now,
                CreateUserId = "5",
                CreateUserName = "******",

            };

            var spaceTwo = new SpaceObject
            {
                Id = Guid.NewGuid(),
                SpaceName = "生存空间",
                FileCount = 1,
                ParentId = Guid.NewGuid().ToString(),
                SpaceSize = 1024,
                CreateTime = DateTime.Now,
                UpdateTime = DateTime.Now,
                CreateUserId = "5",
                CreateUserName = "******",

            };

            Stopwatch stopWatcher = new Stopwatch();
            stopWatcher.Start();

            lueceneSearchProvider.IndexDirectory = "tempspace";
            lueceneSearchProvider.Add(spaceOne);
            lueceneSearchProvider.Add(spaceTwo);

            var results = lueceneSearchProvider.Query<SpaceObject>("空间");
            Assert.IsTrue(results.Count>= 2);

            Console.WriteLine(results.Count);
        }