【问题标题】:Zend lucene and MySql databaseZend lucene 和 MySql 数据库
【发布时间】:2011-04-20 08:57:16
【问题描述】:

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

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

你认为 zend search lucene 对我来说是一个不错的选择吗?

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

提前致谢,

【问题讨论】:

    标签: php full-text-search zend-search-lucene


    【解决方案1】:

    在跳转到基于 Lucene 的解决方案之前,我会先调查 MySQL 原生 Full-Text Searching 是否会满足您的需求。这是对使用 LIKE 语句而无需 Lucene 所需的额外实现的重大改进。

    Zend_Search_Lucene 是 Lucene 的纯 PHP 实现,因此在用于大型数据集时会非常慢。我会跳过它,看看实现Apache Solr。它有一个PECL扩展,即documented here

    【讨论】:

      【解决方案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 版本兼容,因此如果您以后添加更多文章并需要更快的速度,它可能会成为一个很好的网关?

      【讨论】:

        猜你喜欢
        • 2013-07-16
        • 1970-01-01
        • 2013-04-30
        • 1970-01-01
        • 2011-03-28
        • 2011-12-18
        • 2023-03-12
        • 2012-09-10
        • 1970-01-01
        相关资源
        最近更新 更多