Rails×Heroku×bonsai×Searchkick(Elasticsearch) 이용시의 각서
Product
을 대상으로 Searchkick(Elasticsearch)에서 검색하는 경우Gemfile.rb
gem 'elasticsearch', '7.2.0'
gem 'searchkick'
product.rb
class Product < ApplicationRecord
searchkick language: "japanese"
def search_data
{
keywords: keywords
}
end
end
home_controller.rb
class HomeController < ApplicationController
def top
end
def search
@products = self.products_query
end
private
def products_query
if params[:q].present?
Product.search params[:q], fields: [:keywords], body_options: {min_score: 1}, operator: "or"
else
Product.all.order(id: "desc")
end
end
end
Elasticsearch 도입
여기는 전회의 개발로 넣고 있었다.
htps : // m / m z k / ms / 0f722 d01c982 a 96 59
brew install elasticsearch
그냥 잘하지 못하고 Elasticsearch 공식 사이트의 절차를 보면서 넣은 것 같다.htps //w w. 에 s c. 코/구이데/엔/에아 s 치c세아 rch/레후에렌세/7.10/b레w. HTML
$ which elasticsearch
-> usr/local/bin/elasticsearch #私の場合はこのディレクトリに入っていました
로컬로 개발할 때
Elasticsearch가 이미 포함되어 있으면 시작하고 색인 생성하면 검색 결과에 나옵니다.
# Elasticsearchを起動
$ elasticsearch
# 新規タブでkibanaを起動(任意)
$ kibana
# 新規タブでローカルサーバーを起動
$ rails s
# Rails Console でインデックスを生成
$ rails c
irb(main):001:0> Product.reindex # 検索対象となるモデル名がProductの場合
Production Heroku
Heroku에 Bonsai 애드온 추가
GUI에서 포치 포치하는 것만으로, 추가와 환경 변수
BONSAI_URL
의 설정이 자동적으로 된다. 그러나 환경 변수 ELASTICSEARCH_URL
는 수동으로 동일한 값을 설정해야합니다.$ heroku config:get BONSAI_URL -a myapp
-> http://username123:[email protected]:443
$ heroku config:add ELASTICSEARCH_URL='http://username123:[email protected]:443'
BONSAI_URL
은 bonsai의 Credential 화면에서도 확인 가능.bonsai 공식 문서에서는, URL 예가
xxx.bonsai.io/
의 도메인이지만, 나의 것은 xxx.bonsaisearch.net:443
가 되어 있었다. 말미의 숫자까지 제대로 설정하도록.인덱싱
$ heroku run rails searchkick:reindex CLASS=Product -a myapp # 対象モデルがProductの場合
# もしくは
$ heroku run rails searchkick:reindex:all -a myapp
rake
쪽에서 하면 Elasticsearch의 버전에 따라서는 잘 가지 않을지도 모른다 (Searchkick::ImportError
가 나왔다).참고
Searchkick
htps : // 기주 b. 코 m / 안카네 / 세아 rch ck
Heroku Bonsai Elasticsearch Document
htps : //에서 v 선 r. 헤로쿠. 코 m / r 치 c ぇ s / 혼사이
Searchkick의 README의 일본어 번역
htps : // 이 m / 켄토사사 /
Reference
이 문제에 관하여(Rails×Heroku×bonsai×Searchkick(Elasticsearch) 이용시의 각서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/maztak/items/9da01a8e48fd3f4ac555텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)