MongoDB通过2个单独的字符串字段进行搜索,如果可能的话找到类似的结

时间:2015-02-08 03:42:31

标签: node.js performance mongodb search social-networking

很抱歉,如果这是一个重复的问题,但我找不到我正在搜索的内容。

那么所有更大的社交网络如何进行用户搜索?

我的MongoDB架构中有firstNamelastName个字段,我希望能够执行返回用户的请求,这两个用户的名字都包含一个给定的字符串(在搜索栏,可以包含按空格分割的多个单词)。现在我正在使用一个复杂的,写得很糟糕的$ where函数,你could see here。不幸的是,这种方法很慢。当用户键入另一个符号并且其长度> 1时,我发送请求3,所以这应该作为动态搜索工作,并迅速带来结果。

另一个问题是我没有找到一种方法来找到类似的结果,但我想这包括一个比我现在更复杂的逻辑。有什么建议吗?

基本上,用户正在请求/ dynamicSearch /:searchString,并且在服务器上它应该看起来像这样,但更高级,找到类似的结果并为部分名称工作:

Users.ensureIndex( { firstName: "text" } );
Users.ensureIndex( { lastName: "text" } );
Users.find({
    $text:{
        $search: req.params.searchString
    }
});

P.S。:我在服务器端使用Node.js。

0 个答案:

没有答案