我可以预测我的Zend Framework索引有多大吗?(以及一些快速问:s)

3 php mysql sql zend-framework

我有100thousand一个mysql表中的行,在哪里each row has about 8 fields.

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

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

1-是否可以提前确定索引的大小?这是因为在Zend手册中它表示索引的最大大小为2GB.我马上就认为这对我的桌子来说还不够!

2-我已经阅读了帖子,他们说Zend Lucene在大型索引上的搜索非常慢,最多几分钟!直接使用mysql命令(SELECT,LIKE等)而不是zend更快吗?

3-我的问题还有其他解决办法,即为具有这些功能的分类创建搜索引擎,并且不需要全文mysql索引(字段).

谢谢

Bil*_*win 11

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万行,包括大约1 gig的文本数据.Lucene索引为1323 MB,而相同数据的MySQL FULLTEXT索引仅为466 MB.

使用SQL LIKE谓词代替任何全文索引解决方案当然不需要空间,因为它无论如何都无法使用传统索引.但在我的测试中,使用的LIKE速度比Java Lucene慢约200倍,后者在相同数据上的速度比MySQL FULLTEXT指标慢约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.75 MB.推测这150倍,我估计完整的指数将是1312.5 MB.因此,我得出结论,Zend_Search_Lucene创建一个与Java Lucene生成的索引大小相同的索引.这是预期的.