Inheritance: EditorWindow
        //
        // GET: /Search/
        public ActionResult Index(string ID)
        {
            DocSearch doc   = new DocSearch();
            var       model = doc.GetDocuments(ID);

            ViewBag.ID = ID;
            return(View(model));
        }
示例#2
0
        protected void btnSearch_Click(object sender, EventArgs e) {
            XK.SearchEngine.Model.Search_Model searchModel = new Search_Model();
            searchModel.Words = txt_KeyWord.Text;
            searchModel.Fields = new string[] { "Title", "Content" };
            searchModel.PageIndex = 0;
            searchModel.PageSize = 10;
            XK.SearchEngine.DocSearch doc = new DocSearch(searchModel, filePath: "Test", baseDataPath: basepath);

            SearchResult_Model<List<News>> searchResult = doc.Search<News>();
            List<News> news = searchResult.Data;

            rpt_SearchResult.BindExt(news);
        }
示例#3
0
        protected void Page_Load(object sender, EventArgs e) {
           
 
          //  AddDocIndex();
            XK.SearchEngine.Model.Search_Model searchModel = new Search_Model();
            searchModel.Words = "中秋";
            searchModel.Fields = new string[] { "Title", "Content" };
            searchModel.PageIndex = 0;
            searchModel.PageSize = 100;
            XK.SearchEngine.DocSearch doc = new DocSearch(searchModel,filePath:"Test", baseDataPath: basepath);

            SearchResult_Model<List<News>> searchResult = doc.Search<News>();
            List<News> news = searchResult.Data;
           // txt_KeyWord.Text = searchResult.Total.ToString();
            rpt_SearchResult.BindExt(news);

        }
示例#4
0
        public ActionResult CatalogByTitleResponse(String letter)
        {
            DocSearch docSearch = new DocSearch();

            ViewBag.q = letter;
            try
            {
                docSearch.SearchByLetter(letter, true);
                ViewBag.ResultCount = docSearch.CountResults;
                return(View("Results", docSearch.Results.ToList()));
            }
            catch (Exception ex)
            {
                ViewBag.ExMsg = "Результаты поиска";
                return(View("DisplayError", ex));
            }
        }
示例#5
0
        public ActionResult FullText(String q)
        {
            DocSearch docSearch = new DocSearch();

            ViewBag.q = q;

            try
            {
                docSearch.FullTextSearch(q);
                ViewBag.ResultCount = docSearch.CountResults;
                return(View("Results", docSearch.Results.ToList()));
            }
            catch (Exception ex)
            {
                ViewBag.ExMsg = "Результаты поиска";
                return(View("DisplayError", ex));
            }
        }
        protected void UpdateResultInfo(DocSearch search)
        {
            lblMessage.ForeColor = Color.Black;
            if (search.HasResults)
            {
                if (search.HasMoreResults)
                {
                    lblMessage.Text = String.Format(Bip.Components.BipResources.GetString("StrMoreThenNumDocumentsFound"), search.VirtualCount.ToString());
                }
                else
                {
                    lblMessage.Text = String.Format(Bip.Components.BipResources.GetString("StrNumDocumentsFound"), search.VirtualCount.ToString());
                }


                grdSearchResults.PagerStyle.Visible = (bool)(grdSearchResults.PageCount > 1);
            }
            else
            {
                lblMessage.Text = Bip.Components.BipResources.GetString("StrNoSearchResults");
            }
        }
        private void grdSearchResults_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
        {
            string attrFilterDef    = (string)ViewState["AttributesFilter"];
            string contextFilterDef = (string)ViewState["ContextFilter"];
            int    recStart         = grdSearchResults.CurrentPageIndex * grdSearchResults.PageSize;
            int    recNumber        = grdSearchResults.PageSize;
            string orderByAttribute = e.SortExpression;

            ViewState["OrderByAttribute"] = e.SortExpression;
            OrderByAttribute = e.SortExpression;

            DocLinkUrl_Begin = (string)ViewState["DocLinkUrl_Begin"];
            DocLinkUrl_End   = (string)ViewState["DocLinkUrl_End"];


            try
            {
                DocSearch search = new DocSearch();
                if (search.Find(attrFilterDef.ToString(), contextFilterDef, orderByAttribute, recStart, recNumber))
                {
                    //grdSearchResults.CurrentPageIndex = e.NewPageIndex;
                    grdSearchResults.DataSource       = search.ResultSet;
                    grdSearchResults.VirtualItemCount = search.VirtualCount;
                    grdSearchResults.DataBind();
                    grdSearchResults.Visible = true;
                }
                else
                {
                    grdSearchResults.Visible = false;
                }

                UpdateResultInfo(search);
            }
            catch (Exception ex)
            {
                ProcessException(ex);
            }
        }
        public void InitSearch()
        {
            try
            {
                ArrayList attrFilters = new ArrayList();

                attrFilters.Add(DocSearch.FilterDateRange("DateReceived", DateReceived_From, DateReceived_To));
                attrFilters.Add(DocSearch.FilterDateRange("DocumentDate", DocumentDate_From, DocumentDate_To));
                attrFilters.Add(DocSearch.FilterDateRange("CreationTime", CreationTime_From, CreationTime_To));

                attrFilters.Add(DocSearch.FilterStringEquals("Id", Id));
                attrFilters.Add(DocSearch.FilterString("IncomingNumber", IncomingNumber));
                attrFilters.Add(DocSearch.FilterString("OutgoingNumber", OutgoingNumber));
                attrFilters.Add(DocSearch.FilterString("Subject", Subject));
                attrFilters.Add(DocSearch.FilterString("Header", Header));
                attrFilters.Add(DocSearch.FilterString("D.FileName", FileName));
                attrFilters.Add(DocSearch.FilterString("ArchiveFileNames", ArchiveFileNames));

                attrFilters.Add(DocSearch.FilterEnumeration("DocTypeId", DocTypeId_Enum));
                attrFilters.Add(DocSearch.FilterEnumeration("DocSourceId", DocSourceId_Enum));
                attrFilters.Add(DocSearch.FilterEnumeration("DocCategoryId", DocCategoryId_Enum));

                if (IsRead != null && IsRead.Length > 0)
                {
                    attrFilters.Add(DocSearch.FilterIsRead(IsRead == "1"));
                }

                if (IsFavorite != null && IsFavorite.Length > 0)
                {
                    attrFilters.Add(DocSearch.FilterIsFavorite(IsFavorite == "1"));
                }


                StringBuilder attrFilterDef = new StringBuilder();
                foreach (string flt in attrFilters)
                {
                    if (flt == null || flt.Length == 0)
                    {
                        continue;
                    }
                    if (attrFilterDef.Length != 0)
                    {
                        attrFilterDef.Append(" AND ");
                    }
                    attrFilterDef.Append(flt);
                }

                //if(ContextQuery != null && ContextQuery.Trim().Length >0)
                //	ContextQuery = ContextQuery + " zmqpxnowcbievruytalskdjfhgxs";
                // well, this is the only solution filter  IDX IGNORED WORDS exception
                // unfortunately it's impossible to identify this error

                String contextFilterDef = DocSearch.FilterContext(ContextQuery);

                ViewState["AttributesFilter"] = attrFilterDef.ToString();
                ViewState["ContextFilter"]    = contextFilterDef.ToString();
                ViewState["OrderByAttribute"] = OrderByAttribute;


                ViewState["DocLinkUrl_Begin"] = DocLinkUrl_Begin;
                ViewState["DocLinkUrl_End"]   = DocLinkUrl_End;



                DocSearch search = new DocSearch();
                if (search.Find(attrFilterDef.ToString(), contextFilterDef, OrderByAttribute, 0, PageSize))
                {
                    grdSearchResults.DataSource = search.ResultSet;
                    grdSearchResults.PageSize   = PageSize;
                    //grdSearchResults.CurrentPageIndex = 0;
                    grdSearchResults.VirtualItemCount = search.VirtualCount;
                    grdSearchResults.DataBind();
                    grdSearchResults.Visible = true;
                }
                else
                {
                    grdSearchResults.Visible = false;
                }

                UpdateResultInfo(search);
            }
            catch (Exception ex)
            {
                ProcessException(ex);
            }
        }