关于全文搜索引擎 (200分)

  • 主题发起人 主题发起人 ccode
  • 开始时间 开始时间
C

ccode

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp;我的数据是几千个word文档约300M,放在一个文件夹下,如何设计一个全文搜索引擎<br><br>能实现快速的全文检索。
 
&nbsp; &nbsp;请各位高手指点,分不够可以再加。
 
请你参见命令行的FindStr.exe程序。<br>位置:<br>win2000/xp:winnt/system32<br>win98/me/95:windows/command<br><br>编程思路:<br>1、轮循每个文件。<br>2、最好以Binaray方式和stream方式检索。<br>3、算法只能是枚举(如能确定是有序排列,可考虑多重二分,但word文档一般不会<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;是有序排列的)。<br>4、注意效率问题。<br>
 
&nbsp;建议将Word文档另存为HTML再处理——可以做成CHM或者自己写搜索引擎。普通的Word文件<br>的内容都没有办法读出来,根本没有办法操作。就算你本事大,读出来了,单靠搜索结果也<br>无法像CHM那样定位到Word文档内部。
 
to creation-zy:<br>普通的Word文件的内容都没有办法读出来.<br><br>这句话很可笑!<br>2、最好以Binaray方式和stream方式检索。<br>当用二进制或流方式时和文件格式无关。
 
to yyii_yyii:<br>&nbsp; &nbsp;能否给一段代码,谢谢!<br>另:在win98/me/95:windows/command下未找到FindStr.exe,只有Find.exe<br>
 
to yyii_yyii兄:<br>&nbsp; 所以我才说您本事大嘛。(能够让您发笑,我已经深感荣幸了)<br><br>&nbsp; 好像是因为微软官方并未提供Word文档格式,才弄得杀毒软件公司要自己分析Word内部VBA<br>的内容。当然,如果您用微软提供的FindStr甚至Word来操作doc文件,那就令当别论了。<br>&nbsp; 请注意“就算你本事大,读出来了,单靠搜索结果也无法像CHM那样定位到Word文档内部”
 
to creation-zy:<br>&nbsp; &nbsp;我只要能提供搜索结果就行了,无需定位到word文档内部。
 
我将Findstr发给你,请留地址。
 
to yyii_yyii:<br>&nbsp; 谢谢!<br>&nbsp; canyoneer@163.com<br>&nbsp; 希望你能给出这段程序的关键点如:如何调用命令行程序,如何以Binaray方式和stream方式检索 ,<br>若答案令人满意,我愿意再送你200分。 <br>&nbsp;
 
已经发出。<br>1、调用命令行程序用ShellExec。<br>2、以Binaray方式和stream方式:如你使用delphi可以用TFileStream类。
 
其实98下的find.exe也很好用。<br>find /i /n "include" D:/Projects/cb5/ServerH/*.* &gt;c:/a.txt<br>这时a.txt中就存放了查到的结果。<br>&gt;符号是重定向符号,将输出作为输入。<br><br>ShellExecute<br>(handle/*你的窗口句柄*/, <br>'open', <br>'find.exe',<br>'/i /n "include" D:/Projects/cb5/ServerH/*.* &gt;c:/a.txt',<br>'c:/windows/command',<br>SW_HIDE);<br>你只须简单分析一下a.txt就可以了。<br><br>/&gt;find /i /n "include" D:/Projects/cb5/tgr/ServerH/*.* &gt;c:/a.txt
 
已收到,谢谢<br>命令行程序find只能具体到某个文件,若用*.*则提示文件未找到
 
*.*可以的,我在98下运行无问题。
 
1.不知是不是我的操作系统是winme而不能用*.*;<br>2.把doc文件转换成流后如何调用shellexcute呢.<br>望能给出详细的代码, 拜托了。
 
用微软的index server
 
这个问题难道没高手能解决吗
 
如果用winnt or win2000<br>那么index server是非常好的方案
 
如何在程序中调用index server
 
后退
顶部