我应该使用什么关联才能按 Rails 应用程序中的关联模型对搜索结果进行排序?
我目前正在编写一个应用程序,它可以从 Twitter 中提取所有带有链接的推文,并将它们放入我们的可搜索数据库中。
我们的数据库表如下所示:
Tweets content tweet_id Links url title count User username user_image
我们希望能够在 tweet.content 列中搜索搜索词,并按 link.count 对结果进行排序
设置模型关联来实现此目的的最佳方法是什么? 执行搜索的最佳方式是什么? 我已经研究过acts_as_ferret,但我不知道如何对结果进行排序。
谢谢, 丹尼尔·埃里克森
I'm currently writing an app that pulls all the tweets from twitter with links in them and puts them into our searchable database.
Our database tables look like this:
Tweets content tweet_id Links url title count User username user_image
We'd like to be able to search through the tweet.content column for a search term and have the results ordered by the link.count
What is the best way to set up the model associations to accomplish this? And what is the best way to perform the search? I've looked into acts_as_ferret, but I don't know how I would sort the results.
Thanks,
Daniel Erickson
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许像这样的东西
这还没有经过测试,但希望你现在可以做
一个可能更好(更快)的方法是实现一个counter_cache。 Rails 允许您在 tweets 表中进行计数,该计数反映了它拥有多少个 X 类型的关联对象。 因此,您将
links_count
添加到您的 tweets 表中,Rails 应该使该计数器保持最新状态,以了解该 tweet 有多少个链接。 这将使查询变得更容易、更快。 请查看此 Railcast 了解更多信息。Maybe something like this
This has not been tested, but hopefully you can now do
A quite possible better (faster) way of doing this is to implement a counter_cache. Rails allows you to have a count in the tweets-table which reflects how many associated objects of type X it has. So, you you add a
links_count
to your tweets-table Rails should keep that counter up to date on how many links that tweet has. This will make the query easier and faster. Take a look at this Railcast for more info.