Ruby on Rails
탄성 검색
수색…
설치 및 테스트
지역 개발을 위해 가장 먼저하고 싶은 일은 ElasticSearch를 설치하고 실행 중인지 테스트 해 보는 것입니다. Java를 설치해야합니다. 설치는 매우 간단합니다.
- Mac OS X :
brew install elasticsearch
- 우분투 :
sudo apt-get install elasticsearch
그런 다음 시작하십시오.
- Mac OS X :
brew services start elasticsearch
- 우분투 :
sudo service elasticsearch start
그것을 시험하기 위해, 가장 쉬운 방법은 curl
합니다. 시작하는 데 몇 초가 걸릴 수 있으므로 처음에는 응답을받지 않으면 당황하지 마십시오.
curl localhost:9200
응답 예 :
{
"name" : "Hydro-Man",
"cluster_name" : "elasticsearch_gkbonetti",
"version" : {
"number" : "2.3.5",
"build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
"build_timestamp" : "2016-07-27T10:36:52Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}
개발 용 도구 설정
ElasticSearch (ES)를 시작할 때 데이터 탐색에 도움이되는 그래픽 도구가 있으면 좋을 것입니다. elasticsearch-head
라는 플러그인이 바로 그 역할을합니다. 설치하려면 다음을 수행하십시오.
- ES가 설치된 폴더를 찾으십시오 :
ls -l $(which elasticsearch)
-
cd
이 폴더에와 플러그인 설치 바이너리 실행elasticsearch/bin/plugin -install mobz/elasticsearch-head
- 브라우저에서
http://localhost:9200/_plugin/head/
을 엽니 다http://localhost:9200/_plugin/head/
모든 것이 예상대로 작동하면 데이터를 탐색 할 수있는 멋진 GUI가 있어야합니다.
소개
ElasticSearch에는 잘 문서화 된 JSON API가 있지만 아마도이를 처리하는 라이브러리를 사용하고 싶을 것입니다.
Elasticsearch
- HTTP API의 공식 저수준 래퍼Elasticsearch-rails
- ActiveRecord 또는 Repository 패턴을 사용하여 Rails 모델과 ElasticSearch를 연결하는 데 도움이되는 공식적인 고급 레일 통합Chewy
- 매우 인기 있고 논란의 여지가없는 더 나은 문서를 가지고있는 비공식적 인 고수준의 Rails 통합
연결 테스트를 위해 첫 번째 옵션을 사용합니다.
gem install elasticsearch
그런 다음 루비 터미널을 가동 시켜서 시도해보십시오.
require 'elasticsearch'
client = Elasticsearch::Client.new log: true
# by default it connects to http://localhost:9200
client.transport.reload_connections!
client.cluster.health
client.search q: 'test'
검색 킥
신속하게 elasticsearch를 설정하려면 searchkick gem을 사용할 수 있습니다.
gem 'searchkick'
검색하려는 모델에 검색 킥을 추가하십시오.
class Product < ActiveRecord::Base searchkick end
검색 색인에 데이터를 추가하십시오.
Product.reindex
쿼리하려면 다음을 사용하십시오.
products = Product.search "apples" products.each do |product| puts product.name end
꽤 빨리, elasticsearch 지식이 필요하지 않습니다 ;-)
자세한 내용은 https://github.com/ankane/searchkick을 참조 하십시오.