如何排除searchkick中的记录?

时间:2018-10-22 07:00:34

标签: ruby-on-rails searchkick

当它的标签少于3个时,我需要从searchkick中排除记录。现在,我的search_data函数如下:

def search_data
  {
    ...
    tag_ids: tags.map(&:id)
  }
end

我可以这样做吗?

def search_data
  return nil if tags.count < 3
  {
    ...
    tag_ids: tags.map(&:id)
  }
end

或者我可以在执行lookup()时添加一些条件,以便它仅搜索具有3个或更多id的tag_ids数组的记录? (除了添加tag_count字段并重新索引所有内容?)

谢谢!

1 个答案:

答案 0 :(得分:2)

Searchkick提供了定义should_index?方法的功能,该方法完全可以满足您的需求。检出here