Rails pg_search命中率最高的宝石

时间:2018-12-18 16:25:22

标签: ruby-on-rails ruby postgresql full-text-search pg-search

我有一个包含页面和标签的程序,我想添加一个related pages功能。

规则是页面将按它们共享的标签数进行排名。

所以:

[
  { page: 'one', tags: ['a','b','c'] },
  { page: 'two', tags: ['a','b','c'] },
  { page: 'three', tags: ['a','b'] },
  { page: 'four', tags: ['a'] },
  { page: 'five', tags: ['z','w','y'] }
]

与页面one相关的页面顺序为['two', 'three', 'four']

我已经创建了一个pg_search_scope,如下所示:

class Tag
  has_many :pages
end

class Page
  has_many :tags
  pg_search_scope :search_tags,
    associated_against: { tags: :value },
    using: {
      tsearch: { any_word: true }
    }
end

所以我现在的问题是:如何排序search_tags的结果?

0 个答案:

没有答案