Cài đặt và sử dụng ElasticSearch trong Ruby On Rails
Bài đăng này đã không được cập nhật trong 6 năm
Mình có tìm hiểu và sử dụng nên hôm nay mình sẽ hướng dẫn các bạn cài đặt và sử dụng elasticsearch Đầu tiên mình sẽ tạo 1 project mới có tên test_elastic:
rails new test_elastic
tạo xong rồi đi đến project và chạy rails s
nếu thành công vào link localhost:3000
sẽ có hình như dưới đây:
1. Cài đặt ElasticSearch
sudo apt-get update
sudo apt-get install elasticsearch
Sau đó các bạn chạy lệnh dưới đây để start và restart lại server ES
sudo service elasticsearch start
sudo service elasticsearch restart
2. Cài đặt gem searchkick
Thêm searchkick vào gem file
gem “searchkick”
Sau đó chạy:
bundle install
3. Tích hợp Elasticsearch với rails app
Tạo 1 rails app với model Company có trường name: string
rails generate scaffold Company name:string
Thêm module searchkick vào model Company models/company.rb
class Company < ActiveRecord::Base
searchkick
end
Để index dữ liệu của Company lên server ES ta dùng lệnh:
Company.reindex
Gọi hàm search từ controller.
controllers/companies_controller.rb
class CompaniesController < ApplicationController
def index
if params[:query].present?
Company.reindex
@companies = Company.search params[:query]
else
@companies = Company.all
end
end
end
Thêm form search trong view
views/companies/index.html.erb
<div>
<%= form_tag "/companies", method: :get, class: "form-inline" do %>
<%= text_field_tag "query", params[:query], class: "form-control" %>
<%= submit_tag "Search" %>
<% end %>
</div>
sau đó tạo dữ liệu và test
Tóm lại: đây là kiến thức căn bản mình mình giới thiệu với các bạn, phần sau sẽ có những cái chuyên sâu hơn, cám ơn các bạn. Link github: https://github.com/ledinhdoan/test_elastic
All rights reserved