我正在用 php 和 mysql 构建一个 web 应用程序。Web 应用程序将有 3-4 个大表(每个表有数百万条记录),其中非常重要的是必须可以对其执行全文搜索以在文本字段中搜索术语。我用 mysql 设计这个 Web 应用程序,因为它需要完整的酸支持和事务。现在我正在尝试了解如何以更快的方式通过术语(多个单词)在这 3-4 个大数据表中执行搜索结果查询。
我正在考虑将 Solr 用于存储旧数据,我认为我可以构建一个定期 cron 作业,将数据从 mysql 导入 solr,但我不明白:
- 如果用户搜索几秒钟前刚刚插入的文本,我如何使用 mysql 查询新结果,而不是用户搜索旧文本插入,例如 2 天前?
如果用户修改旧数据:
- 如何立即更新 salr 上的记录匹配,以便立即修改其他用户可见的数据。
还
- 如果用户在 mysql 上正确更新旧数据(在事务中)并立即下一个应用程序尝试更新 solr 中的数据以使用新数据值刷新但效果不佳,则用户已经可以看到旧数据,而不是新数据,因为solr 已经有旧数据,因为更新失败。