Prerequisites
This guide walks you through setting up Meilisearch with Ruby.
Prerequisites
- Ruby 2.7 or higher
- A Meilisearch instance (Cloud or self-hosted)
1. Install the SDK
gem install meilisearch
Or add to your Gemfile:
gem 'meilisearch'
2. Connect to Meilisearch
require 'meilisearch'
client = MeiliSearch::Client.new(
ENV['MEILISEARCH_URL'],
ENV['MEILISEARCH_KEY']
)
Set your environment variables:
export MEILISEARCH_URL="https://your-instance.meilisearch.io" # or http://localhost:7700
export MEILISEARCH_KEY="your_api_key"
3. Add documents
movies = [
{ id: 1, title: 'The Matrix', genres: ['Action', 'Sci-Fi'], year: 1999 },
{ id: 2, title: 'Inception', genres: ['Action', 'Thriller'], year: 2010 },
{ id: 3, title: 'Interstellar', genres: ['Drama', 'Sci-Fi'], year: 2014 }
]
## Add documents to the 'movies' index
task = client.index('movies').add_documents(movies)
## Wait for indexing to complete
client.wait_for_task(task['taskUid'])
4. Search
results = client.index('movies').search('matrix')
puts results['hits']
## [{"id"=>1, "title"=>"The Matrix", "genres"=>["Action", "Sci-Fi"], "year"=>1999}]
5. Search with filters
First, configure filterable attributes:
client.index('movies').update_filterable_attributes(['genres', 'year'])
Then search with filters:
results = client.index('movies').search('', {
filter: 'genres = "Sci-Fi" AND year > 2000'
})
Full example
require 'meilisearch'
client = MeiliSearch::Client.new(
ENV['MEILISEARCH_URL'],
ENV['MEILISEARCH_KEY']
)
## Add documents
movies = [
{ id: 1, title: 'The Matrix', genres: ['Action', 'Sci-Fi'], year: 1999 },
{ id: 2, title: 'Inception', genres: ['Action', 'Thriller'], year: 2010 },
{ id: 3, title: 'Interstellar', genres: ['Drama', 'Sci-Fi'], year: 2014 }
]
task = client.index('movies').add_documents(movies)
client.wait_for_task(task['taskUid'])
## Search
results = client.index('movies').search('inter')
puts results['hits']
Rails integration
For Rails applications, use the meilisearch-rails gem:
gem install meilisearch-rails
Add to your model:
class Movie < ApplicationRecord
include MeiliSearch::Rails
meilisearch do
attribute :title, :genres, :year
searchable_attributes [:title]
filterable_attributes [:genres, :year]
end
end
Next steps
Rails integration
Full Rails integration guide
Full-text search
Configure ranking and relevancy
Filtering
Add filters and facets
API reference
Explore all search parameters
