zoukankan      html  css  js  c++  java
  • 盘古分词

    下边代码为读取代码
      #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
  • 相关阅读:
    NFS部署
    centos6 编译安装 mysql5.6----------centos7编译安装MySQL5.7
    db2部署
    FTP服务部署
    ssh 免交互式登陆
    dockerfile
    docker 入门
    求助 webBrowser 的兼容性问题 有偿的 500红包
    EF 请求数据是缓存 求大神解释
    跪求 EF缓存问题 也不知道是不是缓存 问题
  • 原文地址:https://www.cnblogs.com/zhoulove/p/3592271.html
Copyright © 2011-2022 走看看