private void CreateNewLuceneControllerInstance()
 {
     if (_luceneController != null)
     {
         LuceneController.ClearInstance();
         _luceneController.Dispose();
     }
     _luceneController = new LuceneControllerImpl();
     LuceneController.SetTestableInstance(_luceneController);
 }
 public void TearDown()
 {
     this._luceneController.Dispose();
     this.DeleteIndexFolder();
     InternalSearchController.ClearInstance();
     UserController.ClearInstance();
     SearchHelper.ClearInstance();
     LuceneController.ClearInstance();
     this._luceneController = null;
 }
 public void TearDown()
 {
     this.mockHostController    = null;
     Globals.DependencyProvider = null;
     this.luceneController.Dispose();
     this.DeleteIndexFolder();
     InternalSearchController.ClearInstance();
     UserController.ClearInstance();
     SearchHelper.ClearInstance();
     LuceneController.ClearInstance();
     this.luceneController      = null;
     Globals.DependencyProvider = null;
 }
Example #4
0
        public void TearDown()
        {
            LuceneController.ClearInstance();
            this.luceneController.Dispose();
            this.DeleteIndexFolder();
            SearchHelper.ClearInstance();
            Globals.DependencyProvider = null;

            this.mockHostController = null;
            this.luceneController   = null;
            this.cachingProvider    = null;
            this.mockSearchHelper   = null;
            this.mockSearchQuery    = null;
        }
Example #5
0
        private void CreateNewLuceneControllerInstance()
        {
            DeleteIndexFolder();
            InternalSearchController.SetTestableInstance(new InternalSearchControllerImpl());
            _internalSearchController = InternalSearchController.Instance;

            if (_luceneController != null)
            {
                LuceneController.ClearInstance();
                _luceneController.Dispose();
            }
            _luceneController = new LuceneControllerImpl();
            LuceneController.SetTestableInstance(_luceneController);
        }
        public List <IssueDocument> SearchText(string searchString, string sort, int pageSize, int pageNumber)
        {
            List <IssueDocument> result;

            DateTime ini = DateTime.Now;

            // get the lucene query using the lucene parsing capabilities
            // Query luceneQuery = LuceneController.GetLuceneQuery(searchString);

            // perform Lucene Search algorithm
            result = LuceneController.DoSearch(searchString, (pageNumber - 1) * pageSize, pageSize, sort);


            return(result);
        }
        public bool UpdateIndex(int taskId)
        {
            if (ConfigurationController.RunSpanishIndexing)
            {
                T.TraceMessage("Updating ES index...");
                LuceneController.UpdateIndex("ES");
                T.TraceMessage(" done updating ES index");
                T.TraceMessage("Moving ES index...");
                if (!string.IsNullOrEmpty(ConfigurationController.IndexRootPath))
                {
                    LuceneController.MoveIndex(false, "ES", 1);
                }
                T.TraceMessage(" done moving ES index");
            }

            if (ConfigurationController.RunEnglishIndexing)
            {
                T.TraceMessage("Updating EN index...");
                LuceneController.UpdateIndex("EN");
                T.TraceMessage(" done updating EN index");
                T.TraceMessage("Moving EN index...");
                if (!string.IsNullOrEmpty(ConfigurationController.IndexRootPath))
                {
                    LuceneController.MoveIndex(false, "EN", 1);
                }
                T.TraceMessage(" done moving EN index");
            }

            if (ConfigurationController.RunHebrewIndex)
            {
                T.TraceMessage("Updating HE index...");
                LuceneController.UpdateIndex("HE");
                T.TraceMessage(" done updating HE index");
                T.TraceMessage("Moving HE index...");
                if (!string.IsNullOrEmpty(ConfigurationController.IndexRootPath))
                {
                    LuceneController.MoveIndex(false, "HE", 1);
                }
                T.TraceMessage(" done moving HE index");
            }

            return(true);
        }
        private void AddRulles(BooleanQuery q, List <FilterRule> filterRules, Occur cond)
        {
            foreach (var rule in filterRules)
            {
                string fieldName = rule.Field;
                if (fieldName == "id")
                {
                    fieldName = "$id";
                }
                if (fieldName == "userid")
                {
                    fieldName = "$userid";
                }

                if (rule.FieldOperator == OperatorEnum.EQUAL)
                {
                    if (rule.FieldType == FieldTypeEnum.BOOLEAN)
                    {
                        int ival = rule.Value.AsBoolean ? 1 : 0;
                        q.Add(NumericRangeQuery.NewIntRange(fieldName, ival, ival, true, true), cond);
                    }
                    else if (rule.FieldType == FieldTypeEnum.FLOAT)
                    {
                        float fval = rule.Value.AsFloat;
                        q.Add(NumericRangeQuery.NewFloatRange(fieldName, fval, fval, true, true), cond);
                    }
                    else if (rule.FieldType == FieldTypeEnum.STRING || rule.FieldType == FieldTypeEnum.TEXT || rule.FieldType == FieldTypeEnum.HTML)
                    {
                        q.Add(LuceneController.ParseQuery(rule.Value.AsString + "*", fieldName), cond);
                    }
                    else
                    {
                        string searchstring = QueryParser.Escape(rule.Value.AsString);
                        q.Add(new TermQuery(new Term(fieldName, searchstring)), cond);
                    }
                }
                else if (rule.FieldOperator == OperatorEnum.NOT_EQUAL)
                {
                    q.Add(new TermQuery(new Term(fieldName, rule.Value.AsString)), Occur.MUST_NOT);
                }
                else if (rule.FieldOperator == OperatorEnum.START_WITH)
                {
                    if (rule.FieldType == FieldTypeEnum.STRING || rule.FieldType == FieldTypeEnum.TEXT || rule.FieldType == FieldTypeEnum.HTML)
                    {
                        q.Add(LuceneController.ParseQuery(rule.Value.AsString + "*", fieldName), cond);
                    }
                    else
                    {
                        q.Add(new WildcardQuery(new Term(fieldName, rule.Value.AsString + "*")), cond);
                    }
                }
                else if (rule.FieldOperator == OperatorEnum.IN)
                {
                    BooleanQuery arrQ = new BooleanQuery();
                    foreach (var arrItem in rule.MultiValue)
                    {
                        arrQ.Add(new TermQuery(new Term(fieldName, QueryParser.Escape(arrItem.AsString))), Occur.SHOULD); // OR

                        /*
                         * var phraseQ = new PhraseQuery();
                         * phraseQ.Add(new Term(fieldName, arrItem.AsString));
                         * arrQ.Add(phraseQ, Occur.SHOULD); // OR
                         */
                    }
                    q.Add(arrQ, cond);
                }
                else if (rule.FieldOperator == OperatorEnum.BETWEEN)
                {
                    if (rule.FieldType == FieldTypeEnum.DATETIME)
                    {
                        var startDate = rule.LowerValue.AsDateTime;
                        var endDate   = rule.UpperValue.AsDateTime;
                        q.Add(NumericRangeQuery.NewLongRange(fieldName, startDate.Ticks, endDate.Ticks, true, true), cond);
                    }
                }
                else if (rule.FieldOperator == OperatorEnum.GREATER_THEN_OR_EQUALS)
                {
                    DateTime startDate = rule.Value.AsDateTime;
                    DateTime endDate   = DateTime.MaxValue;
                    q.Add(NumericRangeQuery.NewLongRange(fieldName, startDate.Ticks, endDate.Ticks, true, true), cond);
                }
                else if (rule.FieldOperator == OperatorEnum.LESS_THEN_OR_EQUALS)
                {
                    if (rule.FieldType == FieldTypeEnum.DATETIME)
                    {
                        DateTime startDate = DateTime.MinValue;
                        DateTime endDate   = rule.Value.AsDateTime;
                        q.Add(NumericRangeQuery.NewLongRange(fieldName, startDate.Ticks, endDate.Ticks, true, true), cond);
                    }
                }
                else if (rule.FieldOperator == OperatorEnum.GREATER_THEN)
                {
                }
                else if (rule.FieldOperator == OperatorEnum.LESS_THEN)
                {
                }
            }
        }