聊天应用程序的过滤用户的随机匹配算法

问题描述 投票:1回答:1

我正在开发具有随机匹配的聊天应用服务器。

[基本上,该算法在用户请求匹配时开始,为请求者找到另一个用户,向发现的用户发送推送,并在被接受时打开聊天室。

直到现在,由于它是完全随机的系统,因此服务器仅从整个用户池中选择了一个用户,但是现在我想为其添加过滤。可以在所需条件的用户之间匹配用户。换句话说,用户可以通过设置过滤器来指定可以与他们匹配的人,例如“相同年龄的用户”或“相同区域的用户”。当然可以一次有多个过滤器。

诸如年龄和地区的用户属性存储在数据库中。每当每个用户开始匹配时,我都尝试通过for循环检查所有用户的属性,但是我担心服务器的性能。

我认为有很多类似的系统,但是我的Google搜索技术找不到很好的信息。在这种情况下有效的算法是什么?如果您只为我建议好的关键字,我将不胜感激。谢谢。

algorithm random matching
1个回答
0
投票

通常,您只是追加数据库查询,然后从查询结果中随机选择匹配项。

示例:您需要年龄为30岁的随机匹配。更新后的查询将是:选择 *来自用户WHERE users.age = 30现在,您可以通过代码选择一个随机用户,或者将以下内容添加到查询中:按RAND()订购LIMIT 1

© www.soinside.com 2019 - 2024. All rights reserved.