Ruby on Rails
Elasticsearch
खोज…
स्थापना और परीक्षण
पहली बात जो आप स्थानीय विकास के लिए करना चाहते हैं वह है अपनी मशीन में ElasticSearch स्थापित करना और यह देखने के लिए कि क्या चल रहा है, उसका परीक्षण करना। इसके लिए जावा को इंस्टॉल करना होगा। स्थापना बहुत सीधी है:
- मैक ओएस एक्स:
brew install elasticsearch
- Ubuntu:
sudo apt-get install elasticsearch
फिर इसे शुरू करें:
- मैक ओएस एक्स:
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/
खोलें
अगर सब कुछ उम्मीद के मुताबिक काम करता है तो आपको एक अच्छा GUI देखना चाहिए जहां आप अपने डेटा को देख सकते हैं।
परिचय
ElasticSearch में एक अच्छी तरह से प्रलेखित JSON एपीआई है, लेकिन आप शायद कुछ पुस्तकालयों का उपयोग करना चाहते हैं जो आपके लिए काम करते हैं:
Elasticsearch
- HTTP एपीआई के लिए आधिकारिक निम्न स्तर का आवरणElasticsearch-rails
- आधिकारिक उच्च स्तरीय रेल एकीकरण जो आपको ActiveRecord या रिपोजिटरी पैटर्न का उपयोग करके ElasticSearch के साथ अपने रेल मॉडल को जोड़ने में मदद करता है।Chewy
- एक वैकल्पिक, गैर-आधिकारिक उच्च स्तरीय रेल एकीकरण जो बहुत लोकप्रिय है और यकीनन बेहतर प्रलेखन है
चलो कनेक्शन का परीक्षण करने के लिए पहले विकल्प का उपयोग करें:
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'
Searchkick
यदि आप शीघ्रता से खोज करना चाहते हैं तो आप खोजक मणि का उपयोग कर सकते हैं:
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