我一直在寻找一些可以用于共享托管的开源搜索引擎软件/库,我确信Lucene、Lucene.Net、Sphinx或Xapian等服务不能用于共享托管,因为它们需要一些安装或重新启动。
看了维基百科的文章(见这里),我发现了这些开源搜索引擎解决方案。
Apache Solr
BaseX
Clusterpoint Server (freeware licence for a single-server)
DataparkSearch
ElasticSearch (Apache License, Version 2.0)
Ferret
ht://Dig
Hyper Estraier
KinoSearch
Lemur/Indri
Lucene
mnoGoSearch
Sphinx
Swish-e
Xapian
当我四处搜索时,没有一个可以用于共享托管。我想当我在共享主机上时,我必须坚持MySQL全文搜索。
因此,任何关于搜索引擎替代共享主机的建议。
只要您的主机支持PHP 5+,您就可以使用Zend Framework的Lucene实现。它支持Lucene索引格式1.4-2.3版本。由于索引是直接写入文件系统的,因此它应该支持任何允许您访问文件系统的主机(大多数都支持)。
文件:http://framework.zend.com/manual/en/zend.search.lucene.html
话虽如此,您也可以简单地使用MySQL全文搜索。它并非没有限制,也不是最具可扩展性的解决方案,但您所说的共享托管通常不是最具扩展性的环境,因此我不会太担心。
PostgreSQL也是一个选项,如果你选择像Heroku这样的托管提供商(你可以在Heroku上做PHP),建议使用PostgreSQL。
此外,根据您的搜索需求,您可以简单地读取反向索引,并推出自己的简单实现。
最后,我想提一下,你实际上并没有列出你感兴趣的搜索功能
- 术语突出显示
- 定期助推
- 布尔查询
- 自定义分析器/标记器
- 分面浏览
- 等等
如果不列出你想要的功能,别人总是很难做出准确(公正)的推荐。话虽如此,你很可能对基础知识很满意。
http://www.google.com/enterprise/search/products_gss.html
http://www.bing.com/community/site_blogs/b/developer/archive/2010/03/22/add-a-bing-search-box-to-your-site-in-3-easy-steps.aspx
http://developer.yahoo.com/search/boss/boss_api_guide/v2_univer_api_args.html#v2_univer_api_query
你试过看这些吗?它们适用于已使用搜索引擎正确编制索引的公共网站。
另一种选择是编写自己的搜索引擎,尽管这可能不如三大引擎之一在共享托管计划中处理的速度快。
ClusterPoint最近在http://cloud.clusterpoint.com/.由于您将使用共享托管,您也可以使用托管数据库。
另一个选项是Findberry(http://www.findberry.com)。您可以控制自动索引的频率,也可以手动调用索引。我不知道它是否适合你的情况,但可能值得一看。