基于MS Index Server 的全文索引实现
2006-07-23 11:17:21 来源:WEB开发网核心提示: 用index server其实用html页面就可以实现,参考C:\WINDOWS\Help\ciquery.htm 这是用activex 实现的,基于MS Index Server 的全文索引实现(2), 在这里我采用C#和oledb来实现, 微软已经给我们提供了现成的oledb驱动来访问
- 用index server其实用html页面就可以实现。参考C:\WINDOWS\Help\ciquery.htm 这是用activex 实现的。
- 在这里我采用C#和oledb来实现。
微软已经给我们提供了现成的oledb驱动来访问index server。其中PROVIDER=MSIDXS,具体哪些列可以选择,参看附录。
private void BT_Search_Click(object sender, System.EventArgs e)
{
string constr="PROVIDER=MSIDXS;DATA SOURCE=KB";
OleDbConnection con=new OleDbConnection(constr);
try
{
OleDbCommand cmd=new OleDbCommand();
cmd.Connection=con;
cmd.CommandText="SELECT Rank,FileName, Create, Access, Path
FROM SCOPE()
where CONTAINS (''\""+TB_Text.Text+"\"'')";
OleDbDataAdapter da=new OleDbDataAdapter();
da.SelectCommand=cmd;
con.Open();
DataSet ds=new DataSet();
da.Fill(ds);
dataGrid1.DataSource=ds;
}
catch(Exception E)
{
Console.Write(E.Message);
}
finally
{
con.Close();
}
}
关于文档格式扩展。为了实现对aspx,apcx可以通过增中过滤器来实现。 例如对aspx,和ascx的索引可以在注册表中加以下注册项。
[HKEY_CLASSES_ROOT\.aspx\PersistentHandler] ="{eec97550-47a9-11cf-b952-00aa0051fe20}"
[HKEY_CLASSES_ROOT\.ascx\PersistentHandler] ="{eec97550-47a9-11cf-b952-00aa0051fe20}"
对于pdf格式的过滤器在adobe的网站上也有。
更多精彩
赞助商链接