Пример #1
0
        private void search_btn_Click(object sender, EventArgs e)

        /*Handle the event when clicking search button
         * Search main routine*/
        {
            dataGridView.Rows.Clear();
            search_query.Visible = true;
            if (string.IsNullOrEmpty(search_input.Text))
            {
                next_button.Enabled     = false;
                LastButton.Enabled      = false;
                SearchTimeLabel.Visible = false;
                page_label.Visible      = false;
                search_query.Text       = "> Status: Please input a query";
                return;
            }
            string    query     = search_input.Text;
            Stopwatch stopwatch = Stopwatch.StartNew();

            if (!Skip_process.Checked)
            {
                query = PreProcessQuery(query);
            }
            if (string.IsNullOrEmpty(query.Trim()))
            {
                next_button.Enabled     = false;
                LastButton.Enabled      = false;
                SearchTimeLabel.Visible = false;
                page_label.Visible      = false;
                search_query.Text       = "> Status: All of input is filtered by pre-processsing";
                return;
            }
            search_query.Text = S_query_ori + "\n" + query;
            totalPage         = LuceneSearch_app.Search(query, SearchFieldCB.SelectedItem.ToString());
            if (totalPage == 0)
            {
                currentPage         = 0;
                prev_button.Enabled = false;
                next_button.Enabled = false;
                FirstButton.Enabled = false;
                LastButton.Enabled  = false;
            }
            else
            {
                currentPage         = 1;
                prev_button.Enabled = false;
                next_button.Enabled = false;
                LastButton.Enabled  = false;
                FirstButton.Enabled = false;
                if (totalPage > 1)
                {
                    next_button.Enabled = true;
                    LastButton.Enabled  = true;
                }
                ShowResults(currentPage);
            }
            stopwatch.Stop();
            SearchTimeLabel.Text = string.Format("Found {0} result(s) in about {1}ms",
                                                 LuceneSearch_app.ScoreDocs.Length, stopwatch.ElapsedMilliseconds);
            SearchTimeLabel.Visible = true;
            UpdatePageLabel();
        }