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
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!