很抱歉,如果这是一个重复的问题,但我找不到我正在搜索的内容。
那么所有更大的社交网络如何进行用户搜索?
我的MongoDB架构中有firstName
和lastName
个字段,我希望能够执行返回用户的请求,这两个用户的名字都包含一个给定的字符串(在搜索栏,可以包含按空格分割的多个单词)。现在我正在使用一个复杂的,写得很糟糕的$ 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。