在图书馆网站中实现全文搜索软件


Implementing a full-text search software into a library website

我正在运行一个网站,该网站允许访问我所在组织内的某些文档。当前搜索只能根据文档的名称运行。我想通过实现全文搜索软件来改进这一点,比如Archivaius 3000。它还有一个允许在线使用的功能。

问题是,我的网站和Archivaius实际上是不同的网站。如何仅为我网站的登录用户提供对Archivaius的访问权限?如何从Archivaius的搜索结果中删除某些用户不允许使用的文档?

在我看来,应该有一个链,比如:我的网站上的search_form,将请求重定向到Archivaius(PHP的cURL或类似的东西)的处理程序,过滤搜索结果并在我的网站中显示它们的处理程序。

我想会话可能有问题。

我猜对了吗?还有什么需要我记住的吗?

通常,全文搜索是通过直接扫描数据库并对所拥有的内容进行索引来添加到网站中的,而不是使用爬网程序抓取数据。最简单的体现是一个循环,它贯穿每个文档并将其发送到索引器。如果你有很多文档,那么做一个初始的完整索引是值得的,然后当你检测到文档发生了变化时,只单独重新索引文档。

至于用户访问,这需要记录在索引器中。授权通常是分组完成的,因此"销售人员"answers"经理"可能会看到的文档会将元数据发送给索引器。执行搜索时,搜索表单应将它们所属的组添加为元项目,这样就不会显示它们无论如何都无法访问的搜索结果。

如果你计划使用你提到的特定软件,你可能需要查阅该产品附带的手册。然而,还有很多其他方法可以做到这一点:考虑Zend的Lucene实现,以及MySQL和PostgreSQL中的全文索引系统。