![](/img/trans.png)
[英]A php-based search facility with ExtJS not working well on Windows Environment
[英]PHP-based search frameworks
我打算建立一个需要高级搜索功能的小网站。 由于重新发明轮子不是一个值得的活动,我做了一些谷歌搜索,发现有一些基于PHP的搜索框架,其中一个集成到Zend框架。
我想在框架中拥有什么:
由于该网站将具有相当多的静态内容(一些文本和产品目录),我可能会使用一些预先生成的索引。
是否有任何(免费)框架可以满足上述要求? 建议,提示和想法非常受欢迎。 如果您可以分享实施搜索系统的经验,那就太棒了。
看看Omega (基于Xapian) - Xapian项目页面的链接
你可以用cgi-wise集成它。 因为它基于快速的Xapian,如果你正确设置它将是最快的选项之一。 它可以做你要求的一切(包括搜索结果的相关性,索引web服务器文档(html,pdf,word,excel,sql数据库......)做'阻止'等...)
另一个(也是非常好的选择)当然是Apache Lucene - >这是你引用的Zend框架中包含的这个(“Zend Search”)。 它可以做所有相同的技巧,虽然我个人更喜欢Xapian。
编辑:请注意,Omega(和Xapian)是GPL,而Apache Lucene是LGPL,如果我没记错的话。
绝对使用SOLR 。 Solr使用lucene。 这可以用于中型/大型网站....
好的是你可以从solr请求php序列化格式的结果...
编辑:
这就是你要找的东西,我完全忘了它: Zend的Lucene Port To PHP
我最近开发了一个暗示全文搜索,用于我的基于Zend Framework的Web应用程序 - 我找不到任何符合我要求的现成解决方案,所以我全力以赴,从头开发了一个简单的(全文)关键字搜索机制。 我发现以下文章很有帮助:
http://devzone.zend.com/node/view/id/1304
http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html
我现在拥有的是一个系统,它根据在数据库中保存(或更新)项目时生成的“文本摘要”来匹配项目。 我有一个名为kw_search_summary的表,其中包含每个项目(生成的脚本)的文本摘要,其id和类别ID。 'summary'列是一个mysql全文索引,所以我只是MATCH()一个给定表达式的汇总列AGAINST(),并按相关性显示结果。 构建此查询的代码看起来有点像这样:
$select = $this->db->select()
->from(array('kwi' => 'kw_search_index'),
array('id','prodcatid','itemid','useradid','summary','relevance' => "match(summary) against($safeExp in boolean mode)"))
->where("match(summary) against($safeExp in boolean mode)")
->order('relevance desc')
->limitPage($currentPage,self::RESULTS_PER_PAGE);
希望这至少有点帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.