示例#1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (!Page.IsPostBack)
            {
                string query = Request.QueryString["q"];

                if (!string.IsNullOrEmpty(query))
                {
                    QueryExpressionFactory factory = new QueryExpressionFactory();
                    factory.DefaultOperator      = '&';
                    factory.SplitQueryCharacters = DaveSexton.DocProject.DocSites.DocSiteSearch.DefaultSearchProvider.SplitQueryCharacters;
                    factory.IgnoredWords         = DocSiteManager.Settings.SearchExcludedKeywords.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    factory.MinimumKeywordLength = DocSiteManager.Settings.SearchMinimumKeywordLength;
                    factory.Optimize             = false;

                    QueryExpression expression = factory.CreateExpression(query);

                    if (!(expression is EmptyQueryExpression))
                    {
                        expression.Evaluate(delegate(QueryExpression expr)
                        {
                            TermQueryExpression term = expr as TermQueryExpression;

                            if (term != null && !Keywords.Contains(term.Term))
                            {
                                Keywords.Add(term.Term);
                            }
                        });
                    }

                    // The index must always be created when a query is specified otherwise it will be generated
                    // automatically _after_ the keywords are rendered, which means they'll all appear in "red".
                    DaveSexton.DocProject.DocSites.DocSiteSearch.EnsureIndex();

                    keywordsListPanel.Visible = false;
                    KeywordFirstLetter        = null;
                }
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if(!Page.IsPostBack)
            {
                string query = Request.QueryString["q"];

                if(!string.IsNullOrEmpty(query))
                {
                    QueryExpressionFactory factory = new QueryExpressionFactory();
                    factory.DefaultOperator = '&';
                    factory.SplitQueryCharacters = DaveSexton.DocProject.DocSites.DocSiteSearch.DefaultSearchProvider.SplitQueryCharacters;
                    factory.IgnoredWords = DocSiteManager.Settings.SearchExcludedKeywords.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    factory.MinimumKeywordLength = DocSiteManager.Settings.SearchMinimumKeywordLength;
                    factory.Optimize = false;

                    QueryExpression expression = factory.CreateExpression(query);

                    if(!(expression is EmptyQueryExpression))
                    {
                        expression.Evaluate(delegate(QueryExpression expr)
                        {
                            TermQueryExpression term = expr as TermQueryExpression;

                            if(term != null && !Keywords.Contains(term.Term))
                                Keywords.Add(term.Term);
                        });
                    }

                    // The index must always be created when a query is specified otherwise it will be generated
                    // automatically _after_ the keywords are rendered, which means they'll all appear in "red".
                    DaveSexton.DocProject.DocSites.DocSiteSearch.EnsureIndex();

                    keywordsListPanel.Visible = false;
                    KeywordFirstLetter = null;
                }
            }
        }