基于MS Index Server的全文索引实现

php中文网
发布: 2016-06-07 15:03:44
原创
1409人浏览过

本人有个爱好就是看到网上好的文章就收藏起来。目前机器上有250M的文章了,并都已按时间,目录分类存放好。但是在查找时发现很不方便。所以想自己建一个全文索引的知识库。 在方案选择上有ms sql server的全文检索和index server可以用。为了做个决定,自己

本人有个爱好就是看到网上好的文章就收藏起来。目前机器上有250M的文章了,并都已按时间,目录分类存放好。但是在查找时发现很不方便。所以想自己建一个全文索引的知识库。

在方案选择上有ms sql server的全文检索和index server可以用。为了做个决定,自己提出了如下需求。

要求知识库以后可以按时间,依目录拆分;

要求支持word,xls,txt,ppt,带图片的html;

可以扩展支持aspx,pdf;

需求分析:

对于以上两个问题,sql server好像不能很好的满足:

原因1:我要把硬盘上的文章导到数据库里,工作量很大。其次sql server差异备分=备分时刻与第一次的全备份的差异。如果有本次差异备分=第一次全备分+前N次备分那就好了。

原因2:由于很多文章是HTML的。带图片。放到sql server里就有个一对多的问题。解决不了。

原因3:全文检索的填充不能实时进行。

原因4:文章放到数据库image类型字段后,必须通过程序来查看。没有直接放在硬盘上查看方便。

所以最终选择index server.

过程:

(在这里我们取名KB,要索引的文章在D:\知识库\C#知识库,建成后的索引文件放在D:\KB)

启动Windows 2000 /XP上的索引;

缺省情况下选择图标位于管理工具组中的计算机管理。窗口的右边提供关于当前在服务器上存在的索引信息。默认有两个索引:System和Web;

要创建新的索引,用鼠标右键单击索引服务或右边的面板,选定新建编录。

显示添加编录对话框,指定索引的名称并用浏览按钮选取位置。索引服务不会立即开始索引,此时将弹出一条消息框,单击确定继续。为了达到最佳的性能,索引服务可以放在和Web服务器隔离开的硬盘上 ;

指定索引的目录,用右键单击新建的编录名,从弹出选单中选定属性,将出现如图2所示的对话框。第一个选项卡常规显示刚刚输入的内容,在第二个选项卡跟踪中的WWW服务器下拉列表中选取你要索引的Web网站 ;

有了创建的编录,现在可以挑选你想在索引中包括的目录。

实现方法:

用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();
  }

}

1 2  下一页

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号