当前位置: 首页 > 面试题库 >

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

解翰采
2023-03-14
问题内容

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

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

在对网站完全实现此功能之前,我有一些问题:

1-是否可以预先确定索引的大小?这是因为在Zend手册中说索引的最大大小为2GB。我立刻想到这还不够我的桌子!

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

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

谢谢


问题答案:

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索引了数据转储(2009年10月)。我索引了150万行,包括大约1个文本数据。Lucene索引为1323
MB,而相同数据的MySQL FULLTEXT索引仅为466 MB。

使用SQLLIKE谓词代替任何全文本索引解决方案当然不需要任何空间,因为它仍然无法利用常规索引。但是在我的测试中,使用LIKE它的速度比Java
Lucene慢200倍,而Java Lucene的速度却比相同数据上的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生成的索引大小相同。这是预期的。



 类似资料:
  • 问题内容: 我想知道我们是否可以使用索引访问列表 例如: 问题答案: 由于是运算符,而Java不支持运算符重载,因此您不能将其与List一起使用。相反,您必须使用和方法,这些方法可能很冗长,但提供的功能完全相同。

  • 问题内容: 我正在使用NLTK在Web请求中对twitter的杂文进行POS标签。如您所知,Django会为每个请求实例化一个请求处理程序。 我注意到了这一点:对于一个请求(约200条推文),第一个推文需要〜18秒来标记,而所有后续推文都需要〜120毫秒来标记。我该怎么做才能加快流程? 我可以做一个“预热请求”,以便为每个请求加载模块数据吗? 问题答案: 最初的18秒是POS标记器从磁盘上解开到R

  • 问题内容: 我想在cookie中设置一些用户信息并能够在连接时访问它,这可能吗? 问题答案: 由于Cookie始终指向最后登录的用户,因此会导致竞争情况。 请参阅:Socket.IO身份验证 使用connect-redis并将redis用作所有经过身份验证的用户的会话存储。确保通过身份验证将密钥(通常是req.sessionID)发送给客户端。让客户端将此密钥存储在cookie中。 在套接字连接(

  • 问题内容: 无论我在分配时给它多大的尺寸,它仅显示固定的尺寸。有可能增加吗? 码: 问题答案: 大小由样式固定。这是一个标准化的接口元素,因此API不喜欢摆弄它。 但是,您可能可以对其进行缩放转换。但是,不确定在视觉上如何影响它。 仅从UI设计的角度来看,通常最好不留这些常见的标准化元素。用户被告知某些元素以一定的大小出现,并且它们表示特定的事物。更改标准外观会更改界面语法并使用户感到困惑。

  • 我已经实现了一个基于lucene的软件来索引超过1000万的人名,这些人名可以用不同的方式书写,比如“Luíz”和“Luis”。索引是使用各个标记的语音值创建的(创建了一个自定义分析器)。 目前,我正在使用QueryParser查询一个给定的名称,结果很好。但是,在《Lucene in Action》一书中提到,SpanarQuery可以使用标记的接近性来改进我的查询。我对名称的非拼音索引使用了S

  • 问题内容: 我需要根据给定的系统属性加载特定的applicationContext.xml文件。这本身会加载具有实际配置的文件。因此,我需要2个PropertyPlaceHolderConfigurer,一个可解决系统参数,另一个在实际配置中。 任何想法如何做到这一点? 问题答案: 是的,您可以做多个。确保设置ignoreUnresolvablePlaceholders,以便第一个将忽略它无法解析