我有一个Ruby on Rails模型,它有很多HABTM关系。从本质上讲,我正在制作一个以滑板为主题的视频分享网站。每个视频都有许多通过HABTM的地点:位置,滑板,标签,位置,音乐,设备,地点,区域等......它还有一些重要的类属性:标题,描述等......
这里的想法是我的客户希望每个视频播放器使用所有以前提到的描述性数据提供“相关视频”。此外,信息应加权(类似标题优先于类似标签)。
我试图找到一种很好的方法来实现Google SiteSearch来处理繁琐的工作,但找不到一个好的搜索词语法,即:
inurl: example.com/videos related:example.com/videos/4638872
不幸的是,这实际上并不起作用......
答案 0 :(得分:0)
那么,您是否正在寻找用于查找视频的搜索字词?我对这个问题不太确定,但如果是的话,这对你有用吗?
site:example.com inurl:videos
答案 1 :(得分:0)
通过使用雪貂进行关键词爆炸搜索来解决这个问题。
def related
string = self.name + " " + self.tag_name + " " + self.skateboarder_name + " " + self.category_name + " " + self.editor_name
#probably could have used "join" there...
s = "*" + string.gsub(" ", "* OR *") + "*"
relates = Video.find_with_ferret(s)
#takes out duplicates and gices 10 to choose from
while relates.count <= 10
relates << Video.random
relates = relates.uniq
end
#take out original video
relates = relates - [Video.find(self.id)]
#send back with "middle data"... for some reason i thought this might be more accurate....
return relates[1..8]
end