এই উত্তরটি আপনার পক্ষে মঙ্গোডিবি, ইলাস্টিকসার্ক এবং অ্যাঙ্গুলারজেএস সহ একটি কার্যকরী অনুসন্ধান উপাদান তৈরির এই টিউটোরিয়ালটি অনুসরণ করার জন্য যথেষ্ট হতে হবে ।
আপনি যদি কোনও এপিআই থেকে ডেটা সহ মুখযুক্ত অনুসন্ধান ব্যবহার করতে চাইছেন তবে ম্যাথিয়াসনের বার্ডওয়াচ রেপো এমন একটি জিনিস যা আপনি দেখতে চান।
সুতরাং আপনি এখানে একটি নতুন নোডজেএস, এক্সপ্রেস অ্যাপ্লিকেশনটিতে একটি তাজা ইসি 2 উবুন্টু 14.04 উদাহরণে ইন্ডেক্স মঙ্গোডিবিতে একটি নোড ইলাস্টিকসার্ক "ক্লাস্টার" সেটআপ করতে পারেন।
নিশ্চিত হয়ে নিন যে সবকিছু আপ টু ডেট রয়েছে।
sudo apt-get update
নোডজেএস ইনস্টল করুন।
sudo apt-get install nodejs
sudo apt-get install npm
মঙ্গোডিবি ইনস্টল করুন - এই পদক্ষেপগুলি মঙ্গোডিবি ডক্স থেকে সরাসরি। আপনি যে সংস্করণে আরামদায়ক হন তা চয়ন করুন। আমি v2.4.9 দিয়ে আঁকছি কারণ এটি মনে হয় সবচেয়ে সাম্প্রতিকতম সংস্করণ মঙ্গোডিবি-রিভার ইস্যু ছাড়াই সমর্থন করে।
মঙ্গোডিবি সর্বজনীন জিপিজি কী আমদানি করুন।
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
আপনি আপডেট করার সময় আপনার মঙ্গোডিবি ইনস্টলেশনটির সংস্করণটিকে ধাক্কা দেওয়া বন্ধ করুন।
echo "mongodb-10gen hold" | sudo dpkg --set-selections
মঙ্গোডিবি পরিষেবা শুরু করুন।
sudo service mongodb start
আপনার ডাটাবেসগুলি / var / lib / mongo এ ডিফল্ট ফাইল এবং আপনার লগ ফাইলগুলিকে / var / লগ / মোঙ্গোতে অন্তর্ভুক্ত করে।
মঙ্গো শেলের মাধ্যমে একটি ডেটাবেস তৈরি করুন এবং এতে কিছু ডামি ডেটা চাপুন।
mongo YOUR_DATABASE_NAME
db.createCollection(YOUR_COLLECTION_NAME)
for (var i = 1; i <= 25; i++) db.YOUR_COLLECTION_NAME.insert( { x : i } )
এখন স্ট্যান্ডেলোন মোঙ্গোডিবিকে একটি প্রতিরূপ সেটে রূপান্তর করতে ।
প্রথমে প্রক্রিয়া বন্ধ করুন।
mongo YOUR_DATABASE_NAME
use admin
db.shutdownServer()
এখন আমরা একটি পরিষেবা হিসাবে মঙ্গোডিবি পরিচালনা করছি, সুতরাং আমরা যখন মঙ্গোদ প্রক্রিয়াটি পুনরায় চালু করব তখন কমান্ড লাইন আর্গুমেন্টে "--replSet rs0" বিকল্পটি পাস করব না। পরিবর্তে, আমরা এটি mongod.conf ফাইলে রেখেছি।
vi /etc/mongod.conf
আপনার ডিবি এবং লগ পাথগুলিকে সাববিং করে এই লাইনগুলি যুক্ত করুন।
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.
এখন ইলাস্টিকসার্ক ইনস্টল করুন। আমি কেবল এই সহায়ক গিস্টটি অনুসরণ করছি ।
জাভা ইনস্টল করা আছে তা নিশ্চিত করুন।
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
স্থিতিস্থাপক পরিষেবাটি শুরু করুন।
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"
}
এখন ইলাস্টিকসার্ক প্লাগইনগুলি ইনস্টল করুন যাতে এটি মঙ্গোডিবির সাথে খেলতে পারে।
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
অবশেষে মঙ্গোডিবি থেকে সংগ্রহ সূচী করুন।
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'
যাও খেল.