यह उत्तर आपको मोंगोबीडी, एलेस्टिक्स खोज और एंगुलरजेएस के साथ एक कार्यात्मक खोज घटक के निर्माण पर इस ट्यूटोरियल का पालन करने के लिए पर्याप्त होना चाहिए ।
यदि आप एपीआई से डेटा के साथ मुखर खोज का उपयोग करना चाहते हैं तो मैथियस का बर्डवॉच रेपो एक ऐसी चीज है जिसे आप देखना चाहते हैं।
तो यहाँ है कि कैसे आप एक नोड नोडिटिक्स "क्लस्टर" को एनओडीजेएस में उपयोग के लिए इंडेक्स मोंगोबीडी को इंडेक्स कर सकते हैं, एक ताजा ईसी 2 उबंटू 14.04 उदाहरण पर एक्सप्रेस ऐप।
सुनिश्चित करें कि सब कुछ अद्यतित है।
sudo apt-get update
NodeJS स्थापित करें।
sudo apt-get install nodejs
sudo apt-get install npm
MongoDB स्थापित करें - ये चरण MongoDB डॉक्स से सीधे हैं। जो भी संस्करण आप के साथ सहज हो उसे चुनें। मैं v2.4.9 के साथ चिपका रहा हूं क्योंकि यह सबसे हालिया संस्करण MongoDB-River प्रतीत हो रहा है मुद्दों के बिना समर्थन करता है।
MongoDB सार्वजनिक GPG कुंजी आयात करें।
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
अपने स्रोतों की सूची अपडेट करें।
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
10gen पैकेज प्राप्त करें।
sudo apt-get install mongodb-10gen
यदि आप सबसे हाल ही में नहीं चाहते हैं तो अपना संस्करण चुनें। यदि आप अपने वातावरण को एक विंडो 7 या 8 मशीन पर सेट कर रहे हैं, तो v2.6 से दूर रहें, जब तक कि वे इसे सेवा के रूप में चलाने के साथ कुछ कीड़े बाहर काम न करें।
apt-get install mongodb-10gen=2.4.9
जब आप अपडेट करते हैं तो अपने MongoDB इंस्टॉलेशन के संस्करण को रोकें।
echo "mongodb-10gen hold" | sudo dpkg --set-selections
MongoDB सेवा प्रारंभ करें।
sudo service mongodb start
आपका डेटाबेस डिफ़ॉल्ट रूप से / var / lib / mongo और आपकी लॉग फ़ाइलें / var / log / mongo में फ़ाइल करता है।
मोंगो शेल के माध्यम से एक डेटाबेस बनाएं और इसमें कुछ डमी डेटा पुश करें।
mongo YOUR_DATABASE_NAME
db.createCollection(YOUR_COLLECTION_NAME)
for (var i = 1; i <= 25; i++) db.YOUR_COLLECTION_NAME.insert( { x : i } )
अब स्टैंडअलोन MongoDB को एक प्रतिकृति सेट में परिवर्तित करने के लिए ।
पहले प्रक्रिया को बंद करें।
mongo YOUR_DATABASE_NAME
use admin
db.shutdownServer()
अब हम एक सेवा के रूप में MongoDB चला रहे हैं, इसलिए हम mongod प्रक्रिया को पुनरारंभ करने पर कमांड लाइन तर्क में "--replSet rs0" विकल्प में पास नहीं होते हैं। इसके बजाय, हम इसे mongod.conf फ़ाइल में रखते हैं।
vi /etc/mongod.conf
अपने db और लॉग पथ के लिए इन पंक्तियों को जोड़ें
replSet=rs0
dbpath=YOUR_PATH_TO_DATA/DB
logpath=YOUR_PATH_TO_LOG/MONGO.LOG
अब प्रतिकृति सेट को इनिशियलाइज़ करने के लिए फिर से मोन्गो शेल खोलें।
mongo DATABASE_NAME
config = { "_id" : "rs0", "members" : [ { "_id" : 0, "host" : "127.0.0.1:27017" } ] }
rs.initiate(config)
rs.slaveOk() // allows read operations to run on secondary members.
अब Elasticsearch स्थापित करें। मैं सिर्फ इस मददगार जिस्ट का अनुसरण कर रहा हूं ।
सुनिश्चित करें कि जावा स्थापित है।
sudo apt-get install openjdk-7-jre-headless -y
मोंटो-रिवर प्लगइन बग v1.2.1 में तय होने तक अभी तक v1.1.x के साथ रहें।
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.deb
sudo dpkg -i elasticsearch-1.1.1.deb
curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
sudo rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch
सुनिश्चित करें कि /etc/elasticsearch/elasticsearch.yml में निम्नलिखित विन्यास विकल्प सक्षम हैं यदि आप केवल इसके लिए एक एकल पर विकास कर रहे हैं:
cluster.name: "MY_CLUSTER_NAME"
node.local: true
Elasticsearch सेवा प्रारंभ करें।
sudo service elasticsearch start
सत्यापित करें कि यह काम कर रहा है।
curl http://localhost:9200
अगर आप ऐसा कुछ देखते हैं तो आप अच्छे हैं।
{
"status" : 200,
"name" : "Chi Demon",
"version" : {
"number" : "1.1.2",
"build_hash" : "e511f7b28b77c4d99175905fac65bffbf4c80cf7",
"build_timestamp" : "2014-05-22T12:27:39Z",
"build_snapshot" : false,
"lucene_version" : "4.7"
},
"tagline" : "You Know, for Search"
}
अब Elasticsearch प्लगइन्स स्थापित करें ताकि यह MongoDB के साथ खेल सके।
bin/plugin --install com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/1.6.0
bin/plugin --install elasticsearch/elasticsearch-mapper-attachments/1.6.0
ये दो प्लगइन्स आवश्यक नहीं हैं, लेकिन वे प्रश्नों का परीक्षण करने और अपने अनुक्रमित परिवर्तनों की कल्पना करने के लिए अच्छे हैं।
bin/plugin --install mobz/elasticsearch-head
bin/plugin --install lukas-vlcek/bigdesk
इलास्टिक्स की खोज करें।
sudo service elasticsearch restart
अंत में MongoDB से एक संग्रह को अनुक्रमित करें।
curl -XPUT localhost:9200/_river/DATABASE_NAME/_meta -d '{
"type": "mongodb",
"mongodb": {
"servers": [
{ "host": "127.0.0.1", "port": 27017 }
],
"db": "DATABASE_NAME",
"collection": "ACTUAL_COLLECTION_NAME",
"options": { "secondary_read_preference": true },
"gridfs": false
},
"index": {
"name": "ARBITRARY INDEX NAME",
"type": "ARBITRARY TYPE NAME"
}
}'
जाँच करें कि आपका सूचकांक इलास्टिक्स खोज में है
curl -XGET http://localhost:9200/_aliases
अपने क्लस्टर स्वास्थ्य की जाँच करें।
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
यह शायद कुछ अनसाइनड शार्क के साथ पीला है। हमें एलेस्टिक्स को बताना होगा कि हम किसके साथ काम करना चाहते हैं।
curl -XPUT 'localhost:9200/_settings' -d '{ "index" : { "number_of_replicas" : 0 } }'
फिर से क्लस्टर स्वास्थ्य की जाँच करें। यह अब हरा होना चाहिए।
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
खेलने जाओ।