Skip to content

Commit

Permalink
Merge branch '2-0-stable'
Browse files Browse the repository at this point in the history
Conflicts:
	Gemfile
	readme.md
	refinerycms-search.gemspec
  • Loading branch information
parndt committed Apr 16, 2012
2 parents bafe958 + 5aef6f9 commit 2e2e2cf
Showing 1 changed file with 31 additions and 20 deletions.
51 changes: 31 additions & 20 deletions readme.md
Expand Up @@ -7,9 +7,11 @@ Powered by: [acts_as_indexed](http://github.com/dougal/acts_as_indexed) - Check

## Installation

Simply use this by adding the following to your ``Gemfile``:
Simply use this by adding the following to your `Gemfile`:

gem 'refinerycms-search', '~> 2.0.0'
```ruby
gem 'refinerycms-search', '~> 2.0.0', :git => 'git://github.com/resolve/refinerycms-search.git', :branch => '2-0-stable'
```

## RE-SAVE all records that have not been indexed before.

Expand All @@ -19,39 +21,48 @@ You can either use this partial directly, or copy the appropriate parts.
## Searching

The default installation will search in Pages.
If you wish to find results in other plugins you have created or installed, you can specify these in ``config/application.rb`` like so:
If you wish to find results in other plugins you have created or installed, you can specify these in `config/application.rb` like so:

config.to_prepare do
Refinery.searchable_models = [Refinery::Page]
end
```ruby
config.to_prepare do
Refinery.searchable_models = [Refinery::Page]
end
```

Simply add any additional models you wish to search to this array. For example, if you have the [portfolio plugin](http://github.com/resolve/refinerycms-portfolio) installed:

config.to_prepare do
Refinery.searchable_models = [Refinery::Page, Refinery::PortfolioEntry]
end
```ruby
config.to_prepare do
Refinery.searchable_models = [Refinery::Page, Refinery::PortfolioEntry]
end
```

The above line will add indexing to PortfolioEntry in the portfolio plugin, which does not come indexed.

Any model you wish to search will need to be indexed using acts as indexed. To add indexing, simple add:

acts_as_indexed :fields => [:title, :body]
```ruby
acts_as_indexed :fields => [:title, :body]
```

If your model doesn't use a ``:title`` attribute, remember to add an ``alias_attribute``:
If your model doesn't use a `:title` attribute, remember to add an `alias_attribute`:

alias_attribute :title, :name #for example
```ruby
alias_attribute :title, :name #for example
```

You can use any public method, as well. So if you have ``:first_name`` and ``:last_name`` but a method like ``name`` to join them, it can be indexed.
You can use any public method, as well. So if you have `:first_name` and `:last_name` but a method like `name` to join them, it can be indexed.

acts_as_indexed :fields => [:name, :biography]
```ruby
acts_as_indexed :fields => [:name, :biography]

#...
#...

def name
(first_name, last_name).compact.join(' ')
end
def name
[first_name, last_name].reject(&:blank?).join(' ')
end
```

You will need to replace the indexed fields with those appropriate for your model.


If you wish to override the url used in the search results just add a ``url`` method to your model and the result of this method will be used instead.
If you wish to override the url used in the search results just add a `url` method to your model and the result of this method will be used instead.

0 comments on commit 2e2e2cf

Please sign in to comment.