将 Meilisearch 集成到您的 Ruby on Rails 应用程序中。

1. 创建 Meilisearch 项目

在 Meilisearch Cloud 控制面板中创建项目。查阅我们的入门指南以获取分步说明。

如果您更喜欢使用自托管版本的 Meilisearch,可以按照快速入门教程进行操作。

2. 创建 Rails 应用程序

确保您的环境至少使用 Ruby 2.7.0 和 Rails 6.1。

rails new blog

3. 安装 meilisearch-rails Gem

导航到您的 Rails 应用程序并安装 meilisearch-rails Gem。

bundle add meilisearch-rails

4. 添加您的 Meilisearch 凭据

运行以下命令以创建 config/initializers/meilisearch.rb 文件。

bin/rails meilisearch:install

然后添加您的 Meilisearch URL 和默认管理员 API 密钥。在 Meilisearch Cloud 中,您可以在项目设置中找到您的凭据。

MeiliSearch::Rails.configuration = {
  meilisearch_url: '<your Meilisearch URL>',
  meilisearch_api_key: '<your Meilisearch API key>'
}

5. 生成模型并运行数据库迁移

创建一个示例 Article 模型并生成迁移文件。

bin/rails generate model Article title:string body:text

bin/rails db:migrate

6. 将模型索引到 Meilisearch 中

包含 MeiliSearch::Rails 模块和 meilisearch 块。

class Article < ApplicationRecord
    include MeiliSearch::Rails
    
    meilisearch do
    # index settings
 # all attributes will be sent to Meilisearch if block is left empty
    end
end

此代码创建一个 Article 索引,并为您的 Article 模型添加搜索功能。

配置完成后,meilisearch-rails 会自动将您的表数据与 Meilisearch 实例同步。

7. 在数据库中创建新记录

使用 Rails 控制台在数据库中创建新条目。

bin/rails console
# Use a loop to create and save 5 unique articles with predefined titles and bodies
titles = ["Welcome to Rails", "Exploring Rails", "Advanced Rails", "Rails Tips", "Rails in Production"]
bodies = [
  "This is your first step into Ruby on Rails.",
  "Dive deeper into the Rails framework.",
  "Explore advanced features of Rails.",
  "Quick tips for Rails developers.",
  "Managing Rails applications in production environments."
]

titles.each_with_index do |title, index|
  article = Article.new(title: title, body: bodies[index])
  article.save # Saves the entry to the database
end

8. 开始搜索

后端搜索返回从数据库重新加载的符合 ORM 的对象。

# Meilisearch is typo-tolerant:
hits = Article.search('deepre')
hits.first

我们强烈建议使用前端搜索,以享受快速响应的即时搜索体验。

出于测试目的,您可以使用我们内置的搜索预览来浏览记录。

我们还提供资源,帮助您快速构建自己的前端界面

后续步骤

当您准备好使用自己的数据时,请务必先配置您的索引设置以遵循最佳实践。有关完整的配置示例,请参阅meilisearch-rails Gem README