这个过程通常被称为
information retrieval.你可能会发现
this online book有帮助.
现有图书馆
这里有两个现有的解决方案可以完全集成到一个应用程序中,而不需要单独的进程(我相信都会用VC编译).
Xapian是成熟的,可以做很多你需要的,从索引到排序检索.需要单独的HTML解析,因为AFAIK,它不解析html(它有一个配套程序Omega,它是索引网站的前端).
Lucene是Java中的索引/搜索Apache库,具有官方预发行版本C版本lucy和非官方C版本CLucene.
实施信息检索
如果上述选项由于某种原因不可行,请参阅构建和使用索引的各个步骤的一些信息.根据您的应用需求,定制解决方案可以从简单到复杂.我把这个过程分成5个步骤
> HTML处理
>文字处理
>索引
>检索
>排名
HTML处理
这里有两种方法
>剥离您引用的页面讨论了通常称为剥离的技术,其中涉及删除所有不会显示的HTML元素,并将其他元素转换为其显示形式.就个人而言,我将使用perl进行预处理,并对结果文本文件进行索引.但是,对于集成解决方案,特别是要记录重要性标签(例如< h1>< h2>)的解决方案,您可能希望自己的角色. Here is a partial implementation的C剥离程序(出现在C的思考,最终版本的here),你可以从中构建.
>解析从剥离的复杂性上升到html解析,这将有助于您记录重要性标签.但是,一个好的C HTML解析器是hard to find.一些选项可能是htmlcxx(从来没有使用,但是有活力,看起来很有前途)或hubbub(C库,NetSurf的一部分,但声称是可移植的).
如果您正在处理XHTML或愿意使用HTML到XML转换器,则可以使用许多可用的XML