首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能预测我的Zend Framework索引有多大吗?(还有一些快速问答)

我能预测我的Zend Framework索引有多大吗?(还有一些快速问答)
EN

Stack Overflow用户
提问于 2009-12-22 07:28:04
回答 1查看 651关注 0票数 3

我在mysql表中有大约100thousand行,其中each row has about 8 fields.

我终于掌握了如何使用Zend Lucene对mysql表中的数据进行索引和搜索。

在我将这个功能完全应用到我的网站之前,我有一些问题:

1-有可能提前确定索引的大小吗?这是因为在Zend手册中说索引的最大大小是2 2GB。我马上就想,这对我的桌子来说是不够的!

2-我读过一些帖子,他们说Zend Lucene搜索在大索引上非常慢,长达几分钟!直接使用mysql命令(SELECT,LIKE等)比使用zend更快吗?

3-我的问题有没有其他的解决方案,那就是为分类广告创建一个搜索引擎,它至少具有these功能,并且不需要全文mysql索引(字段)。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-22 08:22:29

SOLR基本上是一个Apache Tomcat容器,它实现了一个REST接口来查询Apache Lucene索引。是的,您需要能够在web服务器上运行Java应用程序。这是一个需要你和你的主机提供商解决的问题。

使用您的web应用程序的客户端不需要运行Java。您的PHP应用程序可以对SOLR服务执行REST查询,并将结果格式化为HTML。客户机只看到HTML输出;它不需要知道数据来自于用Java实现的服务。

Zend_Search_Lucene是一个纯PHP实现,应该与Apache Lucene的工作方式相同。Zend解决方案甚至使用相同的索引文件格式。因此,它们在存储方面应该是相等的。

我使用Java Lucene来索引StackOverflow数据转储(2009年10月)。我索引了150万行,其中包括大约1G的文本数据。Lucene索引为1323MB,而相同数据的MySQL全文索引仅为466MB。

当然,使用SQL LIKE谓词代替任何全文索引解决方案都不需要空间,因为它无论如何都不能利用传统的索引。但在我的测试中,使用LIKE的速度大约是Java Lucene的200倍,而Java Lucene又比同样数据上的MySQL全文索引慢大约40%。

请参阅我最近关于MySQL全文索引解决方案的演示:

http://www.slideshare.net/billkarwin/practical-full-text-search-with-my-sql

它无法与Java Lucene技术的性能和可伸缩性相匹敌也就不足为奇了。PHP作为一种语言的优势在于提高了开发效率,而不是运行时效率。

更新:我刚刚尝试使用Zend_Search_Lucene创建索引。使用PHP创建索引比使用Java Lucene技术慢得多,所以我只索引了10,000个文档。这几乎花了15分钟,这使得它需要大约36小时来索引整个集合。这与Java Lucene相比,在我的测试中,它在不到7分钟的时间内索引了150万个文档。

我用Zend_Search_Lucene创建的索引的大小是8.75MB。根据这个150倍的推算,我估计完整的索引应该是1312.5 MB。因此,我得出结论,Zend_Search_Lucene创建的索引与Java Lucene生成的索引的大小大致相同。这和预期的一样。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1943300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档