文章是从RSS提要中解析的,每篇文章可能属于许多类别。每篇文章都有一些元数据,如来源,上游等。
以下是我们如何设计空间。每篇文章都插入到文章空间中。
文章空间
urlhash | article.content
abcdef | {dummy content}
主键urlhash = hash(article.url)。
在category_articles空间中,我们根据文章的落入次数多次插入文章
category_articles
来源|类别| urlhash |时间戳
英国广播公司|艺术| article1 | 27777个
英国广播公司|手机|第8条| 27777个
英国广播公司|电话| article3 | 27778个
nyt |声音| article7 | 36667个
nyt |扬声器| article7 | 45556
主键= {source,category,urlhash}
辅助密钥= {来源,类别,时间戳}
我需要针对给定来源和可能类别的最新文章。我是如何构建查询的。
box.space.category_articles.index.secondary:select {{'nyt','speaker'},{iterator ='LE',limit = 5}}
现在我将在结果中得到article7两次。目前我在代码中过滤重复的结果。如何在tarantool中使用不同的(urlhash)类型的选项。
答案 0 :(得分:0)
两种可能的选择在哪里
第二个是使用Lua存储过程。一个例子:
function select_with_distinct() local ca = box.space.category_articles for _,v in pairs(ca.index.secondary:select { {' nyt',#39;},{iterator =' LE',limit = 5}})) - filtring ...... 结束 端
答案 1 :(得分:0)
我能够使用索引上的pair函数找到更好的解决方案,然后过滤文章(使用lua表跟踪唯一的文章),直到我得到唯一数量的文章。