例如这样一个功能,用户可设置自己的标签,然后其他用户可选择希望匹配到的用户标签,按照匹配率从高到低分页返回用户信息,这样要如何设计表结构,在查询时如何构建查询语句才能分页返回呢?请大佬帮忙解答一下,感激不尽
例如这样一个功能,用户可设置自己的标签,然后其他用户可选择希望匹配到的用户标签,按照匹配率从高到低分页返回用户信息,这样要如何设计表结构,在查询时如何构建查询语句才能分页返回呢?请大佬帮忙解答一下,感激不尽
你可以给每个标签都变成0/1字段,然后条件搜索就行了。
比如用户选了篮球、足球、宅,那么select sum(篮球,足球,宅) as real ...
,然后按real排序。
速度好不了,呵呵。要是单纯的兴趣和当前用户兴趣一致超过50%这种还有可能空间换时间,你这种够呛。
15 回答8.4k 阅读
7 回答5.3k 阅读
4 回答4.4k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
4 回答4k 阅读
3 回答3.9k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
我先猜测你在小厂,先不管算法好坏,纯粹的只是想实现这么一个逻辑差不多正确的功能
mysql5.7以后支持innodb中文全文索引和中文分词器ngram,那么...
给个例子
表结构
取匹配度降序的前10个用户
按你的回复中提供的用例,我测试了下,我觉得可以符合你的需求,结果如下:
