我正在寻找一个开源搜索索引库。它将用于嵌入式 Web 应用程序,因此它应该具有较小的代码大小。最好用 C、C++ 或 PHP 编写,并且不需要安装任何数据库来存储索引。索引应该存储在文件中(例如,xml、txt)。我尝试查看一些著名的搜索库,例如 xapian 和 clucene,它们很好,但对于嵌入式系统来说代码量相对较大。
这将在 Linux 平台上运行,并将用于索引 HTML 文件。
关于什么是好的搜索库/API 有什么想法吗?
谢谢。
首先:您必须在某处存储索引。因此,除非您只需要内存索引,否则将需要一个数据文件。
要索引通用项目,我可以向您推荐 sqlite:http ://www.sqlite.org/ 。当我有一堆数据并且我需要使用多个索引处理它时,我什至在仅内存模式下使用它。
这取决于您的要求。一个完整的 Lucene (Java) 发行版最多可以有 3MB JAR 文件,但实际上可以精简到 1MB 以下。CLucene 在实践中可能要小得多。需要降到多低?...
Swish-E是用 C 语言编写的,可以做你想做的事。不需要数据库,使用自己的二进制索引文件格式。
我也使用过ht://Dig,但它看起来已经很久没有维护该软件了。
两者都可以在 Linux 上编译并索引 HTML。
第三种选择是AustLII使用的SINO。联系那里的团队以确保您获得最新版本。应该在Linux上编译没有太多麻烦。它并不是真正为嵌入式系统设计的(SINO 代表 Size Is No Object),但我上次查看时有一个不错的 API,而且相对较小(因此,它不是为它设计的,但可能也能正常工作)。针对 HTML。相当快的索引。我认为值得一看。(披露:很久以前在那里工作过)
最后,我们使用基于Lucene的Solr。Solr 使用基于将 XML 文档发布到服务器的简单 API。无论您使用什么语言,界面都非常简单。