0

我在 php 和 mysql 中构建了一个 Web 应用程序。我想搜索对 3-4 表进行全文搜索的数据。我正在考虑它的 lucene solr 项目。

我的问题是:将今天的数据保存在单独的 mysql 表中是否正确,然后它只对今天的数据进行简单搜索,如果找到任何内容,它会尝试在 lucene 上查询全文搜索但在旧数据中(从昨天到过去的) ?

我的网络应用程序将数据保存在 mysql 中,但我希望该用户可以对该数据进行全文搜索。我可以运行 4 次每天将数据从 msql 导入到 lucene solr 的工作,但是如果用户更改了 mysql 上的数据并且 solr 还没有开始导入和索引数据,那么用户无论如何都应该能够搜索和查看最近的修改后的数据。

将 lucene solr 与 mysql 和 php 集成的最佳方法是什么?

是否可以向 solr ftom php 发送修改命令以更新用户更改的数据,但只有在 mysql 事务顺利完成时才确保在 solr 上提交数据,所以最后我已经在 mysql 中提交数据并在 lucene 中提交数据,如果有的话在 mysql 和 solr 中 Web 应用程序回滚时出错?

4

2 回答 2

0

您可能会遇到不一致的搜索结果,其中一些点击来自 MySql,而另一些来自 Solr。

想一想:

  1. 在 MySQL 中进行所有全文搜索
  2. 在 Solr 中进行所有全文搜索

实施 Solr 意味着在 MySQL->Solr 和额外的基础设施之间保持数据同步。

看看你是否可以通过使用 MySQL 的FULLTEXT索引和MATCH() AGAINST()查询子句来做你需要的事情。它将使您的应用程序更简单。

http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html

于 2012-05-10T17:16:53.370 回答
0

如果您正在考虑实现 Lucene,表的数量并不重要。按照最好的方法,我会说实现 Zend 的Zend Search Lucene

像 lucene 库一样Zend Search Lucene,有自己的数据标记和搜索机制。他们基本上从数据库中获取数据,从中构建搜索文件并分别存储它们,如果出现问题,则只需重建搜索即可。

关于在数据库更新时更新 Lucene 数据的可能性,完全取决于您实施的解决方案。Zend Search Lucene另一方面,可以做到。

于 2012-05-03T23:33:45.980 回答