我们决定使用MongoDB的一些Web应用程序(而不是MySQL的),但要留在狮身人面像索引/搜索存储在MongoDB中的所有数据。因为MongoDB的对象ID是每默认哈希 - 我们想留在这一点 - 现在有使用狮身人面像的一个问题。因为它说的斯芬克斯文档中:

  

所有文档ID必须是唯一UNSIGNED非零整数   (32位或64位,这取决于构建时间设定)。

所以...什么来解决这个问题......我们怎么能MongoDB的对象ID映射到一个非零整数(反面)的最佳方式?

<强>更新

凯西的回答是寻找到正确的方向,但在原来的字符串的属性在当前的开发版本只适用于SQL数据源。为的xmlpipe有必要修补程序应用到结账源。关于此的更多信息可以在斯芬克斯论坛找到。

有帮助吗?

解决方案

可以不使用该对象ID作为斯芬克斯文档ID - MongoDB的对象ID是比斯芬克斯的文档ID的最大尺寸更大的

相反,你可以增加一个唯一的ID,而生成狮身人面像将要处理(我假设你正在使用的xmlpipe让您蒙戈数据到狮身人面像?)的XML和MongoDB的对象ID存储为一个字符串属性狮身人面像。

您将需要狮身人面像的最新开发版本要做到这一点 - 看到我的回答这个问题的更详细一点:的斯芬克斯而不使用AUTO_INCREMENT ID

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top