有人可以向我解释acts_as_xapian_jobs 表的内部工作原理吗?
我最近遇到了这个acts_as_xapian
插件的问题,当它创建一个带有 xapian 索引字段的对象时,我一直收到以下错误:
Mysql::Error: Duplicate entry 'String-2147483647' for key 2:
INSERT INTO `acts_as_xapian_jobs` (`action`, `model`, `model_id`)
VALUES ('update', 'String', 23730251831560)
事实证明,model_id
超出了最大 int 值 2147483647。解决方法是更新model_id
以使用 bigint。为什么会model_id
这么大?通过查看 的内容acts_as_xapian_jobs
,它似乎为每个被索引的字段创建了一行。了解如何在表中创建作业将有很大帮助。
这是该表的示例:
mysql> select * from acts_as_xapian_jobs limit 5\G
*************************** 1. row ***************************
id: 19
model: String
model_id: 23804037900560
action: update
*************************** 2. row ***************************
id: 49
model: String
model_id: 23804037191200
action: update
*************************** 3. row ***************************
id: 79
model: String
model_id: 23804037932180
action: update
*************************** 4. row ***************************
id: 109
model: String
model_id: 23804037101700
action: update
*************************** 5. row ***************************
id: 139
model: String
model_id: 23804037722160
action: update
提前致谢,
艾米