Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的网站在繁重的数据库中搜索数据。我应该使用Lucene搜索还是编写自己的算法?_Php_Mysql_Database_Algorithm_Lucene - Fatal编程技术网

Php 我的网站在繁重的数据库中搜索数据。我应该使用Lucene搜索还是编写自己的算法?

Php 我的网站在繁重的数据库中搜索数据。我应该使用Lucene搜索还是编写自己的算法?,php,mysql,database,algorithm,lucene,Php,Mysql,Database,Algorithm,Lucene,我正在编写一个网站,将大量数据索引到数据库中(每个数据库大约有800个表),该网站允许您在数据库中搜索各种项目。我应该使用lucene之类的工具还是只编写自己的搜索算法?我正在使用PHP和MySQL。虽然我可以过滤我的SELECT查询,并创建搜索算法,但我只是想知道是否应该使用Lucene,因为我只是在为数据库中的内容编制索引。另外,请提出任何可能对我有帮助的建议。忘了提一下,即使我有800个表,它们的大小也相当小。如果没有看到您的数据,回答这个问题是非常困难的,但是我可以从个人经验中说,编写任

我正在编写一个网站,将大量数据索引到数据库中(每个数据库大约有800个表),该网站允许您在数据库中搜索各种项目。我应该使用lucene之类的工具还是只编写自己的搜索算法?我正在使用PHP和MySQL。虽然我可以过滤我的SELECT查询,并创建搜索算法,但我只是想知道是否应该使用Lucene,因为我只是在为数据库中的内容编制索引。另外,请提出任何可能对我有帮助的建议。忘了提一下,即使我有800个表,它们的大小也相当小。

如果没有看到您的数据,回答这个问题是非常困难的,但是我可以从个人经验中说,编写任何类型的搜索很快就会变得非常复杂。您必须担心要搜索的各个列的权重,而SQL中的搜索速度几乎没有专用搜索引擎中的搜索速度快。由于这个原因,我们正在从内部基于SQL的搜索切换到Sphinx搜索来搜索我们的产品目录。

Lucene是一个成熟的、经过测试的开源库

我想明确地说:尽可能多地使用它,它可能会比实现自己的库更好,并且消耗更少的时间。
如果lucene没有提供某些功能,您可以创建自己的lucene变体来处理它


不要低估社区在使用lucene这样的产品时的重要性:lucene的论坛[等等]几乎总是提供帮助,而且由于用户数量众多,该库一直在进行测试和维护

你说的是Zend_Search_Lucene还是Java实现?也有基于Lucene的替代方案提供更完整的解决方案。无论哪种方式,你都应该澄清你想要执行的搜索类型。即使不知道你的数据集,我可以99%肯定地说,编写自己的搜索算法是错误的。你能提供一些技术细节吗?没有Lucene,你会怎么做?你会如何使用Lucene?数据库里有什么?他们怎么找的?你怎么知道你需要一个全文搜索引擎?