我们有一个 php 应用程序,它有一个巨大的 Mysql 数据库和 Solr 搜索索引(使用 SolrPhpClient)。
在更新我们的索引(通过 Cron)之前,我们删除所有目前不在库存中的项目。并且仅比我们从 Mysql(库存)中选择项目并将此数据添加到 Solr。
我有一个想法,现有的更新搜索索引的方式对于应用程序性能而言过于昂贵。事实上,我们重新索引所有这些项目(我们在模式中使用一些过滤器来处理俄语词干、小写等......),而不是将缺货项目留在带有标志(inStock=1)的索引中。
我想,在未来,我们将在 index.html 中拥有超过 100,000 个位置(也许更多)。所以这种更新方式会使我们的索引太慢,服务器负载太高。
您能从更新索引和从中选择数据的位置谈谈您对这个问题的想法吗?
感谢您的关注...
最佳答案
也许通过调整删除您可以获得更好的性能。这是伪代码:
- 仅删除“缺货”且在 Solr 索引中的商品
- 仅添加/更新“有库存”但 Solr 中不存在或库存计数错误的项目。
这样您就不会每次都重新索引每个文档,而只是那些需要更新的文档。
关于php - 更新或删除 Solr 索引中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827903/