Cài đặt và sử dụng ElasticSearch trong Ruby On Rails
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 ...
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