我正在开发具有随机匹配的聊天应用服务器。
[基本上,该算法在用户请求匹配时开始,为请求者找到另一个用户,向发现的用户发送推送,并在被接受时打开聊天室。
直到现在,由于它是完全随机的系统,因此服务器仅从整个用户池中选择了一个用户,但是现在我想为其添加过滤。可以在所需条件的用户之间匹配用户。换句话说,用户可以通过设置过滤器来指定可以与他们匹配的人,例如“相同年龄的用户”或“相同区域的用户”。当然可以一次有多个过滤器。
诸如年龄和地区的用户属性存储在数据库中。每当每个用户开始匹配时,我都尝试通过for循环检查所有用户的属性,但是我担心服务器的性能。
我认为有很多类似的系统,但是我的Google搜索技术找不到很好的信息。在这种情况下有效的算法是什么?如果您只为我建议好的关键字,我将不胜感激。谢谢。
通常,您只是追加数据库查询,然后从查询结果中随机选择匹配项。
示例:您需要年龄为30岁的随机匹配。更新后的查询将是:选择 *来自用户WHERE users.age = 30现在,您可以通过代码选择一个随机用户,或者将以下内容添加到查询中:按RAND()订购LIMIT 1