elasticsearch,tire,Ruby On Rails,elasticsearch,Tire" /> elasticsearch,tire,Ruby On Rails,elasticsearch,Tire" />

Ruby on rails 执行更新时,轮胎(elasticsearch)未更新

Ruby on rails 执行更新时,轮胎(elasticsearch)未更新,ruby-on-rails,elasticsearch,tire,Ruby On Rails,elasticsearch,Tire,我正在使用ruby on rails中的轮胎连接ElastiSearch 当我使用update\u attributes修改元素的参数时,Tire会自动更新索引以反映此更改 但是,当我通过执行update\u all同时修改多个元素时,Tire不会更新索引,它会与我的数据库不同步 这是轮胎里的虫子吗?是否有解决办法?根据: 如果符合提供的一组条件,则更新所有记录并提供详细信息,还可以提供限制和订单。此方法构造单个SQL UPDATE语句并将其直接发送到数据库。它不会实例化涉及的模型,也不会触发活

我正在使用ruby on rails中的轮胎连接ElastiSearch

当我使用
update\u attributes
修改元素的参数时,Tire会自动更新索引以反映此更改

但是,当我通过执行
update\u all
同时修改多个元素时,Tire不会更新索引,它会与我的数据库不同步

这是轮胎里的虫子吗?是否有解决办法?

根据:

如果符合提供的一组条件,则更新所有记录并提供详细信息,还可以提供限制和订单。此方法构造单个SQL UPDATE语句并将其直接发送到数据库。它不会实例化涉及的模型,也不会触发活动记录回调

所以轮胎不会更新任何东西,因为回调不会被调用

你必须:

a) 使用
find_each
并调用
save
方法


b) 使用
更新\u all
,然后进行完整的重新索引。

您是否已在github上提交轮胎问题?Karmi非常擅长回答it问题,并就可能的解决方案进行头脑风暴。我喜欢(a),因为您想要的功能似乎涉及更新Rails对象,而不是直接的SQL更新调用。除了重新索引外,您可能还希望在对象上发生其他事情。