The*_*can 1 mysql sql database algorithm semantics
网上冲浪我遇到Aquabrowser(无需点击,我会发布相关部分的图片).
它有一种很好的方式来呈现搜索结果和发现语义链接的实体.
在左侧,您可以输入您输入的字词和相关字词.单击它们可以优化结果.

现在作为一个示例项目,我有一个电影实体和主题的数据集(如wolrd-war-2或prison-escape)及其关系.
现在我想象几个用例,首先是用户以关键字开头的情况.例如"第二次世界大战".
然后,我会以某种方式计算相关的关键字并对它们进行排名.
我想一些像这样的SQL查询:
让我们假设"第二次世界大战"有id 3.
select keywordId, count(keywordId) as total from keywordRelations
WHERE movieId IN (select movieId from keywordRelations
join movies using (movieId)
where keywordId=3)
group by keywordId order by total desc
Run Code Online (Sandbox Code Playgroud)
这基本上应该选择所有也有关键字world-war-2的电影,然后查找theese电影所拥有的关键词,并选择最容易出现的关键词.
我认为使用theese关键词我可以选择最匹配的电影,并且有一个包含类似电影和相关关键字的漂亮标签云.
我认为这应该有效,但非常非常非常低效.
它也只有一个级别或关系.
必须有一个更好的方法来做到这一点,但如何?
我基本上有一组实体.它们可以是不同的实体(电影,演员,主题,情节关键词)等.
我也有他们之间的关系.
必须以某种方式有效地计算实体的"语义距离".
我也希望实现更多层次的关系.
但我完全陷入困境.好吧,我尝试了不同的方法,但一切都以某些算法结束,需要花费很长时间才能计算出来,并且运行时间呈指数级增长.
是否有针对此优化的数据库系统?
有人能指出我正确的方向吗?