单个记录的重复搜索索引

如何解决单个记录的重复搜索索引

我有一个模型用户,我正在通过 Searchkick 在 ElasticSearch 中对其进行索引:

class User < ActiveRecord::Base
  searchkick callbacks: :async,routing: true
end

我还有一个后台工作来有条件地重新索引。 问题是在某些情况下,我为单个用户重复了索引:

2.3.8 :191 > u = User.find_by_email("john.doe@mail.com") 
=> #<User id: 401953,email: "john.doe@mail.com",name: "John Doe",university_id: 83,device_id: "b3f3d62839ca6b981ea236562e6da9ff",app_version: "6.7.0>

我有相同的 id 和 _index 的重复 searchkick 索引!

2.3.8 :192 > ap User.search("*",where: {email: "john.doe@mail.com"},load: false).results
 [
    [0] {
                "_index" => "users_production_20200717081323100","_type" => "user","_id" => "401953","_score" => 1.0,"_routing" => "123","email" => "john.doe@mail.com",app_version" => "6.6.0","id" => "401953"
    },[1] {
                "_index" => "users_production_20200717081323100",app_version" => "6.7.0","id" => "401953"
    }
]

唯一改变的属性是 app_version。在某些时候,用户拥有“6.6.0”版本,当更新到 6.7.0 时,索引会重复。在这种情况下,为什么会发生这种情况?这是宝石的正常行为吗?。不应该更新并留下一个索引吗?

问候

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?