Skip to main content
This guide walks you through setting up Meilisearch with Ruby.

Prerequisites

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_API_KEY']
)
Set your environment variables:
export MEILISEARCH_URL="https://your-instance.meilisearch.io"  # or http://localhost:7700
export MEILISEARCH_API_KEY="your_api_key"
Get a free Cloud instance →

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'])
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_API_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
See the full Rails guide →

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

Resources