php - 更新或删除 Solr 索引中的数据?

标签 php mysql search solr

我们有一个 php 应用程序,它有一个巨大的 Mysql 数据库和 Solr 搜索索引(使用 SolrPhpClient)。

在更新我们的索引(通过 Cron)之前,我们删除所有目前不在库存中的项目。并且仅比我们从 Mysql(库存)中选择项目并将此数据添加到 Solr。

我有一个想法,现有的更新搜索索引的方式对于应用程序性能而言过于昂贵。事实上,我们重新索引所有这些项目(我们在模式中使用一些过滤器来处理俄语词干、小写等......),而不是将缺货项目留在带有标志(inStock=1)的索引中。

我想,在未来,我们将在 index.html 中拥有超过 100,000 个位置(也许更多)。所以这种更新方式会使我们的索引太慢,服务器负载太高。

您能从更新索引和从中选择数据的位置谈谈您对这个问题的想法吗?

感谢您的关注...

最佳答案

也许通过调整删除您可以获得更好的性能。这是伪代码:

  • 仅删除“缺货”且在 Solr 索引中的商品
  • 仅添加/更新“有库存”但 Solr 中不存在或库存计数错误的项目。

这样您就不会每次都重新索引每个文档,而只是那些需要更新的文档。

关于php - 更新或删除 Solr 索引中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827903/

相关文章:

php - 使用php将数据插入mysql

php - mysql 列的总和乘以 php 中的变量

php - 使用 PHP 将 JSON 对象中的元素插入数据库

php - 如何通过javascript发送表单数据?

php - Laravel Eloquent 多对多附加

php - 显示它们之前如何从数据库中订购获取的对象?

计算搜索次数

search - 搜索引擎之间的主要区别是什么,这些区别会影响使用哪个搜索引擎来搜索专有数据的决定?

java - 使用 Java 在二进制文件中搜索字节序列

javascript - 从 PHP 回显 HTML 以在网页上的 ajax 请求中显示