我在php和mysql中构建了一个Web应用程序。我想搜索3-4表上进行全文搜索的数据。我正在考虑lucene solr项目。
我的问题是: 是否正确将今天的数据保存在单独的mysql表中,然后它只对今天的数据进行简单搜索,如果它找到了enything,它会尝试查询lucene进行全文搜索但是在旧数据中(从昨天到过去)? / p>
我的网络应用程序在mysql中保存数据,但我希望该用户可以对该数据进行全文搜索。我可以运行4次从msql到lucene solr的数据导入数据,但是如果mysql上的数据由用户更改并且solr尚未开始导入和索引数据,则用户应该能够在任何情况下搜索并查看最近的修改过的数据。
将lucene solr与mysql和php集成的最佳方法是什么?
是否可以向solr ftom php发送修改命令以获取用户更改的更新数据,但确保仅在mysql上提交solr数据 事务干得好,所以最后我提交了mysql中的数据并在lucene中提交数据,如果Web应用程序回滚出现问题,就像在mysql中一样,在solr中?
答案 0 :(得分:0)
如果您正在考虑实施Lucene,表的数量无关紧要。按照最好的方法,我会说实现Zend的Zend Search Lucene。
像Zend Search Lucene
这样的lucene库有自己的机制来标记数据并搜索它们。它们基本上来自数据库中的数据,他们将从中构建搜索文件并单独存储它们,如果出现问题,则只需重建搜索。
关于在数据库更新时更新Lucene数据的可能性,完全依赖于您实现的解决方案。另一方面,Zend Search Lucene
可以做到。
答案 1 :(得分:0)
你可能遇到一些不一致的搜索结果,你的一些点击来自MySql,一些来自Solr。
考虑一下:
实施Solr意味着保持数据在MySQL-> Solr和其他基础设施之间保持同步。
通过使用MySQL的FULLTEXT
索引和MATCH() AGAINST()
查询子句,查看是否可以执行所需操作。它将使您的应用程序更加简单。