Ejemplo n.º 1
0
 public ActionResult Edit(SampleData data)
 {
     if (data.Id == 0)
     {
         ViewData["msg"] = "Id不能为空";
     }
     else if (string.IsNullOrEmpty(data.Name))
     {
         ViewData["msg"] = "Name不能为空";
     }
     else if (string.IsNullOrEmpty(data.Description))
     {
         ViewData["msg"] = "Description不能为空";
     }
     else
     {
         if (GoLucene.Search(data.Id.ToString(), "Id").Any())
         {
             ViewData["msg"] = "Id已存在";
         }
         else
         {
             IndexQueue.GetInstance().AddQueue(new Data {
                 SampleData = data, OptionType = IndexOptionType.Add
             });
         }
     }
     return(View());
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Updates the entire index (Could be slow depending on size)
        /// </summary>
        public void UpdateIndex()
        {
            var allPosts    = _postRepository.GetAllWithTopics().ToList();
            var mappedPosts = allPosts.Select(MapToModel);

            GoLucene.AddUpdateLuceneIndex(mappedPosts);
        }
Ejemplo n.º 3
0
 public ActionResult Delete(int id)
 {
     if (id > 0)
     {
         var record = GoLucene.SearchDefault(id.ToString(), "Id").FirstOrDefault();
         GoLucene.ClearLuceneIndexRecord(id);
     }
     return(View());
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Tìm kiếm từ database
        /// </summary>
        /// <param name="fcSearch"></param>
        /// <returns></returns>
        ///

        //[Route("ket-qua-tim-kiem")]
        //public ActionResult Search(FormCollection fcSearch)
        //{
        //    string name = fcSearch["txtSearch"];
        //    if (name != null && name != "")
        //    {
        //        var model = articlesService.Search(name);
        //        var apiModel = ArticleViewModels.MapFromBOs(model);
        //        return View("Search", apiModel);
        //    }
        //    else
        //    {
        //        var model = articlesService.GetData();
        //        var apiModel = ArticleViewModels.MapFromBOs(model);
        //        return View("Search", apiModel);
        //    }

        //}

        public ActionResult ViewSearch(string searchTerm, string searchField, bool?searchDefault, int?limit)
        {
            // create default Lucene search index directory
            if (!Directory.Exists(GoLucene._lucaenDirFontEnd))
            {
                Directory.CreateDirectory(GoLucene._lucaenDirFontEnd);
            }

            // perform Lucene search
            List <LuceneData_BO> _searchResults;

            // var _searchResults = LuceneViewModels.MapFromBOs(GoLucene.GetAll());
            if (searchDefault == true)
            {
                _searchResults = (string.IsNullOrEmpty(searchField)
                                   ? GoLucene.SearchDefaultFrontEnd(searchTerm)
                                   : GoLucene.SearchDefaultFrontEnd(searchTerm, searchField)).ToList();
            }
            else
            {
                _searchResults = (string.IsNullOrEmpty(searchField)
                                   ? GoLucene.SearchFrontEnd(searchTerm)
                                   : GoLucene.SearchFrontEnd(searchTerm, searchField)).ToList();
            }
            if (string.IsNullOrEmpty(searchTerm) && !_searchResults.Any())
            {
                _searchResults = GoLucene.GetAllIndexRecordsFrontEnd().ToList();
            }

            //// setup and return view model
            //var search_field_list = new
            //    List<SelectedList> {
            //                            new SelectedList {Text = "(All Fields)", Value = ""},
            //                            new SelectedList {Text = "Id", Value = "Id"},
            //                            new SelectedList {Text = "Name", Value = "Name"},
            //                            new SelectedList {Text = "Description", Value = "Description"}
            //                         };

            //// limit display number of database records
            //var limitDb = limit == null ? 3 : Convert.ToInt32(limit);
            //List<LuceneData> allLuceneData;
            //if (limitDb > 0)
            //{
            //    allSampleData = SampleDataRepository.GetAll().ToList().Take(limitDb).ToList();
            //    ViewBag.Limit = SampleDataRepository.GetAll().Count - limitDb;
            //}
            //else allSampleData = SampleDataRepository.GetAll();

            return(View(new LuceneViewModels
            {
                // AllLuceneData = allLuceneData,
                SearchIndexData = _searchResults,
                //LuceneData = new SampleData { Id = 9, Name = "El-Paso", Description = "City in Texas" },
                //  SearchFieldList = search_field_list,
            }));
        }
Ejemplo n.º 5
0
 public ActionResult ClearIndex()
 {
     if (GoLucene.ClearLuceneIndex())
     {
         TempData["Result"] = "Search index was cleared successfully!";
     }
     else
     {
         TempData["ResultFail"] = "Index is locked and cannot be cleared, try again later or clear manually!";
     }
     return(RedirectToAction("Index"));
 }
 private void clearIndex()
 {
     if (GoLucene.ClearLuceneIndex())
     {
         litResult.Text = "Search index was cleared successfully!";
     }
     else
     {
         litResult.Text = "Index is locked and cannot be cleared, try again later or clear manually!";
     }
     bindData();
 }
        private DefaultViewModel getDefaultViewModel(string searchTerm, string searchField, string type = "")
        {
            // create default Lucene search index directory
            if (!Directory.Exists(GoLucene._luceneDir))
            {
                Directory.CreateDirectory(GoLucene._luceneDir);
            }

            // perform Lucene search
            IEnumerable <SampleData> searchResults = new List <SampleData>();

            if (string.IsNullOrEmpty(type))
            {
                searchResults = string.IsNullOrEmpty(searchField)
                           ? GoLucene.Search(searchTerm)
                           : GoLucene.Search(searchTerm, searchField);
            }
            else if (type == "default")
            {
                searchResults = string.IsNullOrEmpty(searchField)
                           ? GoLucene.SearchDefault(searchTerm)
                           : GoLucene.SearchDefault(searchTerm, searchField);
            }

            // setup and return view model
            var search_field_list = new
                                    List <SelectedList> {
                new SelectedList {
                    Text = "(All Fields)", Value = ""
                },
                new SelectedList {
                    Text = "Id", Value = "Id"
                },
                new SelectedList {
                    Text = "Name", Value = "Name"
                },
                new SelectedList {
                    Text = "Description", Value = "Description"
                }
            };

            return(new DefaultViewModel {
                AllSampleData = SampleDataRepository.GetAll(),
                AllSearchIndexData = GoLucene.GetAllIndexRecords(),
                SampleData = new SampleData {
                    Id = 9, Name = "El-Paso", Description = "City in Texas"
                },
                SampleSearchResults = searchResults,
                SearchFieldList = search_field_list,
            });
        }
Ejemplo n.º 8
0
 public ActionResult Index(string key)
 {
     if (!string.IsNullOrEmpty(key))
     {
         GoLucene.AddWords(key);
         var results = GoLucene.Search(key);
         ViewData["str"]    = GoLucene.GetSegmenter().CutForSearch(key).Join("/");
         ViewData["result"] = results;
     }
     else
     {
         ViewData["str"] = "请输入";
     }
     return(View());
 }
 public ActionResult BuiltOnDemandDMSAdd(ArticleViewModels article)
 {
     if (ModelState.IsValid)
     {
         try
         {
             LuceneViewModels luceneViewModels = new LuceneViewModels();
             luceneViewModels.Id          = article.Id;
             luceneViewModels.Title       = article.TitleVN;
             luceneViewModels.Url         = article.UrlVN.Replace("-", " ").Trim();
             luceneViewModels.Description = article.MetaDescriptionVN;
             luceneViewModels.AvatarUrl   = article.ImageAvatarVN;
             var lucene = luceneViewModels.MapToBO();
             var bo     = article.MapToBO();
             if (article.Id > 0)
             {
                 articlesService.UpdateItem(bo);
                 GoLucene.AddUpdateLuceneIndex(lucene);
             }
             else
             {
                 articlesService.AddItem(bo);
                 GoLucene.AddUpdateLuceneIndex(lucene);
             }
         }
         catch (Exception e)
         {
             ViewData["EditError"] = e.Message;
         }
     }
     else
     {
         ViewData["EditError"] = "Please, correct all errors.";
     }
     return(RedirectToAction("BuiltOnDemandDMS"));
 }
 private void addToIndex(SampleData sampleData)
 {
     GoLucene.AddUpdateLuceneIndex(sampleData);
     litResult.Text = "Record was added to search index successfully!";
     bindData();
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Optimise the index
 /// </summary>
 public void OptimiseIndex()
 {
     GoLucene.Optimize();
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Delete an item from the index
 /// </summary>
 /// <param name="id"></param>
 public void Delete(Guid id)
 {
     GoLucene.ClearLuceneIndexRecord(id);
 }
 private void optimizeIndex()
 {
     GoLucene.Optimize();
     litResult.Text = "Search index was optimized successfully!";
     bindData();
 }
Ejemplo n.º 14
0
 public ActionResult CreateIndex()
 {
     GoLucene.AddUpdateLuceneIndex(SampleDataRepository.GetAll());
     TempData["Result"] = "Search index was created successfully!";
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 15
0
        public ActionResult Index
            (string searchTerm, string searchField, bool?searchDefault, int?limit)
        {
            // create default Lucene search index directory
            if (!Directory.Exists(GoLucene._luceneDir))
            {
                Directory.CreateDirectory(GoLucene._luceneDir);
            }

            // perform Lucene search
            List <SampleData> _searchResults;

            if (searchDefault == true)
            {
                _searchResults = (string.IsNullOrEmpty(searchField)
                           ? GoLucene.SearchDefault(searchTerm)
                           : GoLucene.SearchDefault(searchTerm, searchField)).ToList();
            }
            else
            {
                _searchResults = (string.IsNullOrEmpty(searchField)
                           ? GoLucene.Search(searchTerm)
                           : GoLucene.Search(searchTerm, searchField)).ToList();
            }
            if (string.IsNullOrEmpty(searchTerm) && !_searchResults.Any())
            {
                _searchResults = GoLucene.GetAllIndexRecords().ToList();
            }


            // setup and return view model
            var search_field_list = new
                                    List <SelectedList> {
                new SelectedList {
                    Text = "(All Fields)", Value = ""
                },
                new SelectedList {
                    Text = "Id", Value = "Id"
                },
                new SelectedList {
                    Text = "Name", Value = "Name"
                },
                new SelectedList {
                    Text = "Description", Value = "Description"
                }
            };

            // limit display number of database records
            var limitDb = limit == null ? 3 : Convert.ToInt32(limit);
            List <SampleData> allSampleData;

            if (limitDb > 0)
            {
                allSampleData = SampleDataRepository.GetAll().ToList().Take(limitDb).ToList();
                ViewBag.Limit = SampleDataRepository.GetAll().Count - limitDb;
            }
            else
            {
                allSampleData = SampleDataRepository.GetAll();
            }

            return(View(new IndexViewModel {
                AllSampleData = allSampleData,
                SearchIndexData = _searchResults,
                SampleData = new SampleData {
                    Id = 9, Name = "El-Paso", Description = "City in Texas"
                },
                SearchFieldList = search_field_list,
            }));
        }
Ejemplo n.º 16
0
 public PagedList <LuceneSearchModel> Search(string searchTerm, int pageIndex, int pageSize, bool doFuzzySearch = false)
 {
     return(GoLucene.Search(searchTerm, pageIndex, pageSize, doFuzzySearch));
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Get all records from the index
 /// </summary>
 /// <returns></returns>
 public IEnumerable <LuceneSearchModel> GetAll()
 {
     return(GoLucene.GetAllIndexRecords());
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Search the index by search term
 /// </summary>
 /// <param name="searchTerm"></param>
 /// <param name="doFuzzySearch"></param>
 /// <returns></returns>
 public IEnumerable <LuceneSearchModel> Search(string searchTerm, bool doFuzzySearch = false)
 {
     return(GoLucene.Search(searchTerm, string.Empty, doFuzzySearch));
 }
Ejemplo n.º 19
0
 public IEnumerable <LuceneSearchModel> Search(string searchTerm, string fieldName, int amountToTake, bool doFuzzySearch = false)
 {
     return(GoLucene.Search(searchTerm, amountToTake, fieldName, doFuzzySearch));
 }
 private void createIndex()
 {
     GoLucene.AddUpdateLuceneIndex(SampleDataRepository.GetAll());
     litResult.Text = "Search index was created successfully!";
     bindData();
 }
Ejemplo n.º 21
0
 public ActionResult ClearIndexRecord(int id)
 {
     GoLucene.ClearLuceneIndexRecord(id);
     TempData["Result"] = "Search index record was deleted successfully!";
     return(RedirectToAction("Index"));
 }
 private void clearIndexRecord(int id)
 {
     GoLucene.ClearLuceneIndexRecord(id);
     litResult.Text = "Search index record was deleted successfully!";
     bindData();
 }
Ejemplo n.º 23
0
 public ActionResult OptimizeIndex()
 {
     GoLucene.Optimize();
     TempData["Result"] = "Search index was optimized successfully!";
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Add / Update an item in the index
 /// </summary>
 /// <param name="luceneSearchModel"></param>
 public void AddUpdate(LuceneSearchModel luceneSearchModel)
 {
     GoLucene.AddUpdateLuceneIndex(luceneSearchModel);
 }
Ejemplo n.º 25
0
 public ActionResult AddToIndex(SampleData sampleData)
 {
     GoLucene.AddUpdateLuceneIndex(sampleData);
     TempData["Result"] = "Record was added to search index successfully!";
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Delete the entire index
 /// </summary>
 public void DeleteEntireIndex()
 {
     GoLucene.ClearLuceneIndex();
 }