README
nesta-plugin-search is a plugin for the Nesta CMS use Ferret to index and search your site.
Installation
To install it as a gem add nesta-search to the Gemfile
in your Nesta
project, and then re-run bundle
:
$ echo "gem 'nesta-plugin-search'" >> Gemfile
$ bundle
Text Search Usage
Create a /search
page -- content/pages/search.haml
-- here's an example:
%h1 Search Results
- if (results = search_results( search_index, params[:q] )) && !results.empty?
%section.articles= article_summaries(results)
- else
%h3 No articles found!
Add a searchbox to your layout, something like:
%form{:action => "/search"}
%input{:type => "text", :name => "q", :value => "#{params[:q]||''}"}
Text Search Configuration
Set search_index_timeout
to the number of seconds you want your default indexes to
be stored for. By default, this is false
, which never expires the index. It should
be noted that reindexing is slow.
Set search_ignore_list
to the abspath of the pages you want to be excluded from the
search index. "/search" is forcefully excluded always and "/" is the default.
Example:
search_index_timeout: 3600
search_ignore_list:
- /
- /foo
- /foo/bar
IMPORTANT NOTE: If you're not using "/search" as your search page, please add it to this list or bad things may happen.
Advanced Usage Notes
Provided Index Helpers:
search_index
-- an index of all pages and articles.article_index
-- an index of articles only.
Creating your own index:
- my_index = Nesta::Plugin::Search::Index.new( :my_find_method ).index
%h1 Search Results
- if (results = search_results( my_index, params[:q] )) && !results.empty?
%section.articles= article_summaries(results)
- else
%h3 No articles found!
If you want to pregenerate your cache to disk and load it that way, it would be something like this:
- existing_index = Ferret::Index::Index.new(:path => "/path/to/existing/index")
%h1 Search Results
- if (results = search_results( existing_index, params[:q] )) && !results.empty?
%section.articles= article_summaries(results)
- else
%h3 No articles found!