• 盘古分词


    下边代码为读取代码
      #region 搜索功能
            protected void btnSearch_Click(object sender, EventArgs e)
            {
    
                this.rpTestContentShow.DataSource = getInfo();
                this.rpTestContentShow.DataBind();
            } 
            #endregion
    
    
            protected void btnCreatIndex_Click(object sender, EventArgs e)
            {
                string path = Server.MapPath(@"/PanGu/Index");
                string title = btnTltle.Text.Trim();
                string summary = txtContent.Text.Trim();
    
                bool isNew = false;
                if (!IndexReader.IndexExists(path)) 
                {
                    isNew = true;
                }
                Lucene.Net.Index.IndexWriter iw = new Lucene.Net.Index.IndexWriter(path, new PanGuAnalyzer(), isNew);
                #region 从数据库总读到数据
                DataSet ds = new DataSet();
                SqlParameter[] parameters = {
                        new SqlParameter("@tablename", SqlDbType.VarChar, 50),
                        new SqlParameter("@columns", SqlDbType.VarChar, 500),
                        new SqlParameter("@pagesize", SqlDbType.Int),
                        new SqlParameter("@currpage", SqlDbType.Int),
                        new SqlParameter("@order", SqlDbType.VarChar,2000),
                        new SqlParameter("@where", SqlDbType.VarChar,2000),
                        };
                parameters[0].Value = "VW_Product_ForSearch";
                parameters[1].Value = " *";
                parameters[2].Value = 1000;
                parameters[3].Value = 1;
                parameters[4].Value = " product_order asc";
                parameters[5].Value = " 1=1";
                using (SqlConnection conn = new SqlConnection(DBHelper.conStr))
                {
                    using (SqlCommand cmd = new SqlCommand("JF_GetFinalPager", conn))
                    {
                        cmd.Parameters.AddRange(parameters);
                        cmd.CommandType = CommandType.StoredProcedure;
                        conn.Open();
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds);
                        conn.Close();
                    }
                } 
                #endregion
    
                DataTable dt = ds.Tables[0];
                if (dt != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        Document doc = new Document();
    
                        doc.Add(new Lucene.Net.Documents.Field("title", dr["p_name"].ToString(), Lucene.Net.Documents.Field.Store.YES, Field.Index.ANALYZED));
                        doc.Add(new Lucene.Net.Documents.Field("summary", dr["c_name"].ToString(), Lucene.Net.Documents.Field.Store.YES, Field.Index.ANALYZED));
                        doc.Add(new Lucene.Net.Documents.Field("createTime", DateTime.Now.ToString("yyyy-MM-dd"), Lucene.Net.Documents.Field.Store.YES, Field.Index.ANALYZED));
    
                        iw.AddDocument(doc);
                    }
                }
                iw.Optimize();
                iw.Close();
            }
    View Code

    下边代码为盘古分词创建索引

      public string Search = string.Empty;
            protected void btnSearch_Click(object sender, EventArgs e)
            {
    
                string path = Server.MapPath(@"/PanGu/Index");
                string keywords = this.btnTltle.Text.Trim();
    
                IndexSearcher searcher = new IndexSearcher(path);
    
                QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "title", new PanGuAnalyzer());
                Query qq = parser.Parse(keywords);
                Hits hits=searcher.Search(qq);
    
                PanGu.HighLight.SimpleHTMLFormatter simpleHTMLFormatter = new PanGu.HighLight.SimpleHTMLFormatter("<span style="font-weight:bold;color:red;">", "</span>");
                PanGu.HighLight.Highlighter highlighter = new PanGu.HighLight.Highlighter(simpleHTMLFormatter, new Segment());
    
                highlighter.FragmentSize = 50;
    
                StringBuilder sb = new StringBuilder();
    
                DataTable dtTab = new DataTable();
    
                dtTab.Columns.Add("p_name");
                dtTab.Columns.Add("c_name");
               
    
                for (int i = 0; i < hits.Length(); i++) 
                {
                    DataRow dr = dtTab.NewRow();
                    Document doc = hits.Doc(i);
                    dr[0] = highlighter.GetBestFragment(keywords, doc.Get("title"));
                    dr[1] = doc.Get("summary");
                    dtTab.Rows.Add(dr);
                }
    
                this.rpTestContentShow.DataSource = dtTab;
                this.rpTestContentShow.DataBind();
            }
    View Code
  • 相关阅读:
    vux 数据模拟mockjs的使用
    vux 配置颜色问题
    vue-router 学习
    vue 学习笔记
    点击加载更多
    table td 固定宽度
    js scroll 滚动连续多次触发事件只执行一次
    Merge into的注意点之ORA-30926: 无法在源表中获得一组稳定的行?
    js页面中取值的注意点
    insert into的方式
  • 原文地址:https://www.cnblogs.com/zhoulove/p/3592271.html
Copyright © 2020-2023  润新知