Как обрабатывать связанные объекты по атрибутам? - PullRequest
0 голосов
/ 27 февраля 2011

У меня есть модель Ruby on Rails, которая имеет довольно много отношений HABTM.По сути, я делаю сайт обмена видео, посвященный скейтбордингу для клиента.Каждое видео имеет множество атрибутов через HABTM: местоположение, скейтбордисты, теги, местоположение, музыка, оборудование, место, регион и т. Д. ... А также имеет несколько важных атрибутов класса: заголовок, описание и т. Д.*

Идея заключается в том, что мой клиент хотел бы, чтобы каждый видеоплеер использовал фид "Похожие видео", используя все ранее упомянутые описательные данные.Кроме того, информация должна быть взвешенной (похожие заголовки имеют приоритет над аналогичными тегами).

Я пытался найти хороший способ реализовать Google SiteSearch для обработки грубой работы, но не могу найти хороший синтаксис поисковых запросовто есть:

inurl: example.com/videos related:example.com/videos/4638872 

Что на самом деле не работает, к сожалению ...

Ответы [ 2 ]

0 голосов
/ 22 марта 2011

Решил это, используя хорька для поиска по ключевому слову.

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
0 голосов
/ 27 февраля 2011

Итак, вы ищете поисковый запрос, чтобы использовать его для определения местоположения ваших видео? Я не уверен в этом вопросе, но если да, то подойдет ли это вам?

site:example.com inurl:videos
...