我最近发现了Zoom搜索引擎,这让我觉得非常有趣,因为它的软件可以轻松地将索引过程和搜索过程解耦。
换句话说,您在本地计算机上运行索引器,然后上传该索引以及使用它来搜索它们的 PHP 文件到您的网络服务器。
因此您的网络服务器不必进行索引。我在共享环境中有一台主机,最好使用尽可能少的资源,所以这对我来说非常好。此外,我家里有一个几乎未使用的小型服务器(这不是我拥有的网络服务器),我可以将其用于索引目的。
但是,它仅运行 Linux、SSH,因此无法选择 Zoom 搜索引擎。
有没有和Zoom搜索引擎原理一样的东西(本地索引,上传索引+PHP到网站),但是可以在命令行Linux环境下使用?
我的建议是看看 OpenSearchServer 。基于 lucene 的搜索引擎。易于设置,成熟稳定。
对于您的要求:
OpenSearchServer支持Linux和Windows平台。
SSH 足以远程运行 OpenSearchServer。
您可以在本地爬取网站,并通过复制或通过FTP将索引(OpenSearchServer的数据目录)更新到远程计算机。对于较大的索引,复制是最佳选择。
它有一个 PHP 客户端库,以便您可以轻松地在现有或新应用程序中启用搜索。
SPHINX 搜索服务器:http://sphinxsearch.com/
绝对满足您的所有需求,并且还被一些流行的商店使用,如 Craigslist、MySQL 等。
PHP 是 Sphinx 固有的。所有接口均采用 PHP 编写,实际引擎采用 C++ 编写。速度极快。
我自己使用 Solr/Lucene,但我为你的任务给予 Sphinx +1。
可以替代 Zoom 搜索引擎的最接近的解决方案是 python 上的 Whoosh 模块。 它还创建一个索引文件,不需要启动和运行任何数据库或服务。 也真的非常快。
它完全基于 python,更加相关且独立于环境。 Zoom 处理大文档的效果非常糟糕 - 它们破坏了结果的相关性,并且输出结果很混乱。 Whoosh 也可以在大输入的情况下发挥作用。
不同之处在于,您必须为 Whoosh 准备数据。 Zoom 有一个功能,当它从 PDF、DOC 中提取数据时,甚至可以识别 TIFF、JPEG 和其他一些格式 - 但与 Whoosh 相比,结果的相关性非常稀缺。
Whoosh 的基本设置非常简单,如果您准备了一些数据集和一些 Python 知识,可能需要 10-15 分钟。