How to use sunspot_rails gem to search for related articles

后端 未结 1 558
悲&欢浪女
悲&欢浪女 2021-01-07 16:09

I have a mini blog app and i would like user to view articles that relates to what they are reading in the article show page. without the sunspot_rails gem i would do someth

相关标签:
1条回答
  • 2021-01-07 16:34

    As RocketR mentions, this is a trivial use case for Sunspot.

    First, use Sunspot to specify that you have three fields to be indexed as text.

    class Article < ActiveRecord::Base
      searchable do
        text :name
        text :description
        text :notes
      end
    end
    

    Then issue a search, likely from within a controller action. The @search object below contains metadata about the search response, including the matching objects under its results method.

    @search = Article.search do
      keywords query
    end
    @results = @search.results
    

    To find other documents that are similar to an object you already have loaded, say in a show action, you can call the more_like_this instance method. This is a special kind of search, which uses Solr's "More Like This" functionality, and which returns a search object similar to the above full-text search. You can use its results method to render the results of that search.

    <%= render @article.more_like_this.results %>
    

    The more_like_this method also accepts a block with similar options to the search block, so you can have more control over how you're judging similarity.

    Hope that helps!

    0 讨论(0)
提交回复
热议问题