用Lucene.net对数据库建立索引及搜索 (2)
来源:互联网 发布:mac eclipse 真机调试 编辑:程序博客网 时间:2024/06/05 00:22
用Lucene.net对数据库建立索引及搜索 (2)
关键词: Lucene.net,asp.cs代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Lucene.Net;
using Lucene.Net.Index;
using Lucene.Net.Documents;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Analysis.Cn;
namespace WebApplication4
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox tj;
protected System.Web.UI.WebControls.Button Search;
protected System.Web.UI.WebControls.DataGrid SearGrid;
public string connstr="server=.;database=TopWin2;uid=sa;pwd=";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
//打开数据库表
SqlDataReader myred=OpenTable();
//建立索引
IndexWriter writer=CreateIndex(myred);
}
}
public SqlDataReader OpenTable()
{
SqlConnection mycon=new SqlConnection(connstr);
mycon.Open();
SqlCommand mycom=new SqlCommand("select id,title,content from userblog order by id",mycon);
return mycom.ExecuteReader();
}
public IndexWriter CreateIndex(SqlDataReader myred)
{
IndexWriter writer = new IndexWriter("c:/index/", new ChineseAnalyzer(), true);
try
{
//建立索引字段
while(myred.Read())
{
Document doc=new Document();
doc.Add(Field.Keyword("id",myred["id"].ToString()));
doc.Add(Field.Text("title",myred["title"].ToString()));
doc.Add(Field.Text("content",myred["content"].ToString()));
writer.AddDocument(doc);
}
writer.Optimize();
writer.Close();
}
catch(Exception e)
{
Response.Write(e);
}
return writer;
}
public Hits seacher(String queryString)
{
Hits hits=null;
try
{
IndexSearcher mysea=new IndexSearcher("c:/index/");
Query query=QueryParser.Parse(queryString,"content",new ChineseAnalyzer());
hits=mysea.Search(query);
}
catch(Exception e)
{
Response.Write(e);
}
return hits;
}
Web 窗体设计器生成的代码
private void Search_Click(object sender, System.EventArgs e)
{
DataRow myrow;
DataTable mytab=new DataTable();
mytab.Columns.Add("id");
mytab.Columns.Add("title");
mytab.Columns.Add("content");
mytab.Clear();
Hits myhit=seacher(this.tj.Text.Trim());
if (myhit!=null)
{
for(int i=0;i<myhit.Length();i++)
{
Document doc=myhit.Doc(i);
myrow=mytab.NewRow();
myrow[0]=doc.Get("id").ToString();
myrow[1]=doc.Get("title").ToString();
myrow[2]=doc.Get("content").ToString();
mytab.Rows.Add(myrow);
myrow.AcceptChanges();
}
this.SearGrid.DataSource=mytab;
this.SearGrid.DataBind();
}
else
{
//
}
}
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Lucene.Net;
using Lucene.Net.Index;
using Lucene.Net.Documents;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Analysis.Cn;
namespace WebApplication4
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox tj;
protected System.Web.UI.WebControls.Button Search;
protected System.Web.UI.WebControls.DataGrid SearGrid;
public string connstr="server=.;database=TopWin2;uid=sa;pwd=";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
//打开数据库表
SqlDataReader myred=OpenTable();
//建立索引
IndexWriter writer=CreateIndex(myred);
}
}
public SqlDataReader OpenTable()
{
SqlConnection mycon=new SqlConnection(connstr);
mycon.Open();
SqlCommand mycom=new SqlCommand("select id,title,content from userblog order by id",mycon);
return mycom.ExecuteReader();
}
public IndexWriter CreateIndex(SqlDataReader myred)
{
IndexWriter writer = new IndexWriter("c:/index/", new ChineseAnalyzer(), true);
try
{
//建立索引字段
while(myred.Read())
{
Document doc=new Document();
doc.Add(Field.Keyword("id",myred["id"].ToString()));
doc.Add(Field.Text("title",myred["title"].ToString()));
doc.Add(Field.Text("content",myred["content"].ToString()));
writer.AddDocument(doc);
}
writer.Optimize();
writer.Close();
}
catch(Exception e)
{
Response.Write(e);
}
return writer;
}
public Hits seacher(String queryString)
{
Hits hits=null;
try
{
IndexSearcher mysea=new IndexSearcher("c:/index/");
Query query=QueryParser.Parse(queryString,"content",new ChineseAnalyzer());
hits=mysea.Search(query);
}
catch(Exception e)
{
Response.Write(e);
}
return hits;
}
Web 窗体设计器生成的代码
private void Search_Click(object sender, System.EventArgs e)
{
DataRow myrow;
DataTable mytab=new DataTable();
mytab.Columns.Add("id");
mytab.Columns.Add("title");
mytab.Columns.Add("content");
mytab.Clear();
Hits myhit=seacher(this.tj.Text.Trim());
if (myhit!=null)
{
for(int i=0;i<myhit.Length();i++)
{
Document doc=myhit.Doc(i);
myrow=mytab.NewRow();
myrow[0]=doc.Get("id").ToString();
myrow[1]=doc.Get("title").ToString();
myrow[2]=doc.Get("content").ToString();
mytab.Rows.Add(myrow);
myrow.AcceptChanges();
}
this.SearGrid.DataSource=mytab;
this.SearGrid.DataBind();
}
else
{
//
}
}
}
}
- 用Lucene.net对数据库建立索引及搜索 (2)
- 用Lucene.net对数据库建立索引及搜索
- 用Lucene.net对数据库建立索引及搜索
- 用Lucene.net对数据库建立索引及搜索
- lucene对数据库建立索引
- 用lucene为数据库搜索建立 增量索引
- 用lucene为数据库搜索建立增量索引
- 用lucene为数据库搜索建立增量索引
- 用lucene为数据库搜索建立增量索引
- 用lucene为数据库搜索建立增量索引
- Lucene 建立索引数据库 实现搜索网页
- 利用lucene对整个数据库建立索引
- lucene对整个数据库建立全文索引
- Lucene.Net建立搜索
- 使用Lucene对建立的索引进行搜索
- Lucene 建立索引和搜索
- 用Lucene建立索引及查询示例
- 用Lucene建立索引及查询示例
- 如何学好JAVA
- Java课程设计之学习成绩管理系统
- lucene.net 2.0 中文分词后语法高亮问题
- [信息图表]手机进化简史
- lucene.net开发教程与总结(一)
- 用Lucene.net对数据库建立索引及搜索 (2)
- 推迟满足感
- FilenameFilter
- sed巧妙获取软件包名字
- Drupal 资源
- 类设计者的核查表
- android控件14 Spinner
- 任务管理模块 quartz + spring
- 关于职业规划,尤其值得我们程序员学习、思考