盘古分词

下边代码为读取代码
  #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

 

你可能感兴趣的:(分词)