2

的文档more_like_this显示了如何使用它来获取更多基于标准的相似类型的内容:

class Post < ActiveRecord::Base
  searchable do
    # The :more_like_this option must be set to true
    text :body, :more_like_this => true
  end
end

post = Post.first

results = Sunspot.more_like_this(post) do
  fields :body
  minimum_term_frequency 5
end

我想知道是否可以返回不同数据类型的相关项目。例如,Videos与 相关/相似Articles

我想这取决于more_like_this是按照“基于一组标准的更多与ArticlesArticle相似的事物”的方式运行,还是按照“基于一组标准的更多与此相似的事物Article”的方式运行。 ..

我的用例是,如果我正在显示Article, 并且我想在页面的一侧显示相关内容 - 可能是 other ArticlesVideos同一类别或Events相关主题等的内容。

4

1 回答 1

4

http://sunspot.github.com/sunspot/docs/Sunspot.html#more_like_this-class_method

+ (Object) more_like_this(object, *types, &block) 启动 MoreLikeThis 搜索。MoreLikeThis 是一种特殊类型的搜索,它使用全文比较来查找相似的文档。要比较的text字段是设置为:more_like_this选项的字段true。默认情况下,more like this 返回与用于比较的对象具有相同类型的对象,但可以选择将类型列表传递给此方法以返回其他类型的相似文档。这仅适用于具有公共字段的类型。

例子:

  post = Post.first
  Sunspot.more_like_this(post, Post, Page) do
    fields :title, :body
    with(:updated_at).greater_than(1.month.ago)
    facet(:category_ids)
  end

另见:http ://sunspot.github.com/sunspot/docs/Sunspot/Query/MoreLikeThis.html

于 2012-12-27T21:57:17.913 回答