WEB开发网
开发学院软件开发VC 基于MS Index Server 的全文索引实现 阅读

基于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驱动来访问
  1. 用index server其实用html页面就可以实现。参考C:\WINDOWS\Help\ciquery.htm 这是用activex 实现的。
  2. 在这里我采用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的网站上也有。

Tags:基于 MS Index

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接