​ Prerequisites

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_KEY']
)

Set your environment variables:

export MEILISEARCH_URL="https://your-instance.meilisearch.io"  # or http://localhost:7700
export MEILISEARCH_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_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

Configure ranking and relevancy

Filtering

Add filters and facets

API reference

Explore all search parameters

​ Resources