使用sphinx搜索mongodb作为数据源

aur*_*ora 26 sphinx mongodb

我们决定将mongodb用于某些Web应用程序(而不是mysql),但希望继续使用sphinx来索引/搜索存储在mongodb中的所有数据.因为mongodb object-id是默认的哈希 - 我们希望保持这一点 - 现在使用sphinx存在一个问题.正如它在sphinx文档中所说:

所有文档ID必须是唯一的非符号非零整数(32位或64位,取决于构建时间设置).

所以...解决这个问题的最佳方法是什么...我们如何将mongodb object-id映射到非零整数(和返回)?

UPDATE

casey的答案是正确的方向,但事实证明,字符串属性在当前的dev版本中,仅适用于sql数据源.对于xmlpipe,必须将补丁应用于结帐源.有关这方面的更多信息可以在sphinx论坛中找到.

cas*_*sey 28

您不能将对象ID用作Sphinx文档ID - MongoDB对象ID大于Sphinx文档ID的最大大小.

相反,您可以在生成Sphinx要处理的XML时增加一个唯一ID(我假设您使用xmlpipe将Mongo数据导入Sphinx?)并将MongoDB对象ID存储为Sphinx中的字符串属性.

你需要最新的Sphinx开发版本才能做到这一点 - 请参阅我对这个问题的回答以获得更多细节:不使用auto_increment id的Sphinx