2

我有一个 PHP 网站,其中的数据存储在 MySql 数据库中。(大约 50 000 篇文章)我想改进全文搜索功能的结果,并停止使用简单的 LIKE 查询。

我从 Zend 框架中发现 Zend_Search_Lucene 似乎是一个很棒的工具。

您认为 zend search lucene 在我的情况下是一个不错的选择吗?

用 lucene 索引我的所有文章后,我需要将数据保留在 MySql 中还是 zend search lucene 足以保留所有数据?

提前致谢,

4

2 回答 2

3

在跳转到基于 Lucene 的解决方案之前,我会先调查 MySQL 的原生全文搜索是否能满足您的需求。LIKE这是在没有 Lucene 所需的额外实现的情况下使用语句的重大改进。

Zend_Search_Lucene 是 Lucene 的纯 PHP 实现,因此在用于大型数据集时可能会非常慢。我会跳过它,看看实现Apache Solr。它有 PECL 扩展,在此处记录

于 2011-04-20T09:03:31.910 回答
2

我已经在超过 200,000 份包含大量数据的文档中使用了 MySQL 的全文,并且我的搜索时间在流行术语上约为 0.5 秒到 2 秒,并且每隔一段时间就会出现非常罕见的 5 或 6 秒响应。我每天都会更新一些数据,因此长期缓存效果不佳,但如果我可以缓存搜索,我可以在缓存后查看 0.2 秒或更低。

我正在测试转移到 Zend Lucene,到目前为止,对于最常用的术语,相同的搜索不到 1.5 秒。

以上所有内容都在具有 2 gigs ram 和 core 2 duo 的专用服务器上。

我不是专家,但对于 50,000 篇文章,我同意 Treffynnon 检查全文搜索而不是使用 LIKE。如果您确实迁移到 Zend Lucene 的新版本,我相信索引与 java 版本兼容,因此如果您以后添加更多文章并需要更快的速度,它可能会成为一个很好的网关?

于 2011-07-25T21:09:43.030 回答