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