我用php和mysql构建了一个web应用程序。我想搜索数据在3-4表上做全文搜索。我正在考虑lucene solr项目。
我的问题是:将今天的数据保存在单独的mysql表中是正确的,然后它只对今天的数据进行简单的搜索,如果找到任何东西,它就尝试在lucene上进行全文搜索,但在旧数据中(从昨天到过去)?
我的web应用程序将数据保存在mysql中,但我希望用户可以对这些数据进行全文搜索。我可以运行一个作业,一天4次从msql导入数据到lucene solr,但是如果mysql上的数据被用户更改,solr还没有开始导入和索引数据,用户应该能够在任何情况下搜索和查看最近修改的数据。
将lucene solr与mysql和php集成的最佳方法是什么?
有没有可能发送一个修改命令到solr ftom php来更新用户更改的数据,但确保只有在mysql事务进行得很好的情况下才在solr上提交数据,所以最终我在mysql中提交了数据,在lucene中提交了数据,如果web应用程序回滚出现问题,就像在mysql中一样,就像在solr中一样?
发布于 2012-05-04 07:33:46
如果您正在考虑实现Lucene,那么表的数量并不重要。至于最好的方法,我会说实现Zend的Zend Search Lucene。
像Zend Search Lucene这样lucene库有自己的数据标记化和搜索机制。他们基本上是从数据库中获得数据,他们将从数据库中构建搜索文件并将其单独存储,如果出现问题,则只需重建搜索。
关于在数据库更新时更新Lucene数据的可能性,完全取决于您实现的解决方案。另一方面,Zend Search Lucene可以做到这一点。
发布于 2012-05-11 01:16:53
你可能会遇到不一致的搜索结果,其中一些来自MySql,另一些来自Solr。
想一想:
中执行所有全文搜索
实现Solr意味着保持MySQL->Solr和其他基础设施之间的数据同步。
看看是否可以通过使用MySQL的FULLTEXT索引和MATCH() AGAINST()查询子句来实现所需的功能。它将使您的应用程序简单得多。
http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html
https://stackoverflow.com/questions/10440726
复制相似问题