মংগোডিবি দিয়ে কীভাবে ইলাস্টিকসার্ক ব্যবহার করবেন?


152

আমি মঙ্গোডিবি-তে ইন্ডাস্টিক সংগ্রহগুলিতে মঙ্গোডিবি-র জন্য ইলাস্টিকসার্ক কনফিগার করার বিষয়ে অনেকগুলি ব্লগ এবং সাইটগুলি পেরিয়েছি কিন্তু সেগুলির কোনওটিই সোজা ছিল না।

ইলাস্টিকসर्च ইনস্টল করার জন্য দয়া করে আমাকে ধাপে ধাপে প্রক্রিয়াটি ব্যাখ্যা করুন, যার মধ্যে অন্তর্ভুক্ত করা উচিত:

  • কনফিগারেশন
  • ব্রাউজারে চালান

আমি এক্সপ্রেস.জেএস সহ নোড.জেএস ব্যবহার করছি, সুতরাং দয়া করে সেই অনুযায়ী সহায়তা করুন।


4
দ্রষ্টব্য: নদী
অবনতি

উত্তর:


287

এই উত্তরটি আপনার পক্ষে মঙ্গোডিবি, ইলাস্টিকসার্ক এবং অ্যাঙ্গুলারজেএস সহ একটি কার্যকরী অনুসন্ধান উপাদান তৈরির এই টিউটোরিয়ালটি অনুসরণ করার জন্য যথেষ্ট হতে হবে ।

আপনি যদি কোনও এপিআই থেকে ডেটা সহ মুখযুক্ত অনুসন্ধান ব্যবহার করতে চাইছেন তবে ম্যাথিয়াসনের বার্ডওয়াচ রেপো এমন একটি জিনিস যা আপনি দেখতে চান।

সুতরাং আপনি এখানে একটি নতুন নোডজেএস, এক্সপ্রেস অ্যাপ্লিকেশনটিতে একটি তাজা ইসি 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'

যাও খেল.


@ ডাক 5auce এক্সপ্রেস.জেএস দ্বারা ফলাফল (স্থিতিস্থাপক অনুসন্ধান ফলাফল) কীভাবে পাবেন সে সম্পর্কে কোনও ধারণা থাকতে পারে এবং অ্যাপ্লিকেশন ('অনুসন্ধান = "গুগল"), ফাংশন (রেক , মাঝামাঝি) {}); এবং দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ
বিবিন ডেভিড

@ বিবিন্দাভিড আমি এই সংস্থানটি পরীক্ষা করে দেখতে চাই। এটি একটি সার্ভার সাইড ES ক্লায়েন্ট মডিউল তৈরির মাধ্যমে আপনাকে অন্য দুটি কাস্টম মডিউল দিয়ে ফিল্টারযুক্ত ক্যোয়ারীগুলি ধাক্কা দেয়। ডেটা রেন্ডারিং এখনও ক্লায়েন্টের উপর পরিচালিত হয় তবে এটি একটি শালীন সূচনা পয়েন্ট হওয়া উচিত। sahan.me/posts/dabbling-in-elasticsearch-part-2-with-nodejs গিথুব রেপো এখানে অবস্থিত: github.com/sahan/sahan.github.io/tree/master/resources/…
ডোনাল্ড গ্যারি

আপনি কি প্লিজ আমাকে বলতে পারবেন কোনটি আরও ভাল মঙ্গুস্তাস্টিক বা মঙ্গোজ এবং ইলাস্টিক সার্চ মডিউলটি আলাদাভাবে ব্যবহার করে ????
সুধাংশু গৌড় 6'15

7
ডাক 5 আউসের দুর্দান্ত উত্তরের পরে এটি এক বছর হয়ে গেছে। ভাবুন যে লোকেরা রিয়েল-টাইমে ইলাস্টিক অনুসন্ধানের সাথে একটি মঙ্গোডিবি ক্লাস্টার সিঙ্ক্রোনাইজ করতে এখন 10 জেনস [মঙ্গো-সংযোগকারী] [1] ব্যবহার করছে। এটি মঙ্গোডিবি ওপলগটিকে লেজ দেয়। [1]: github.com/10gen-labs/mongo-connector/wiki/…
অ্যান্ড্রু বেটস

8
@ duck5auce দয়া করে এই উত্তরটি আপডেট করুন, এটি পুরানো। নদী
অবনমিত করা

35

আপনার অপারেশনটি দাঁড়িপাল্লায় বাড়ালে নদী ব্যবহার করা সমস্যাগুলি উপস্থাপন করতে পারে। ভারী অপারেশন চলাকালীন নদী এক টন মেমরি ব্যবহার করবে। আমি আপনার নিজস্ব ইলাস্টিক সন্ধানকারী মডেলগুলি বাস্তবায়নের পরামর্শ দিচ্ছি বা আপনি যদি মঙ্গুজ ব্যবহার করছেন তবে আপনি আপনার ইলাস্টিক সর্বাধিক মডেলগুলি তৈরি করতে পারেন বা মঙ্গসাস্টিক ব্যবহার করতে পারেন যা মূলত এটি আপনার জন্য করে।

মোংডব নদীর আরও একটি অসুবিধা হ'ল আপনি মোংডোডবি ২.৪.x শাখা এবং ইলাস্টিক অনুসন্ধান 0.90.x ব্যবহার করে আটকে যাবেন আপনি সন্ধান করতে পারবেন যে আপনি প্রচুর চমৎকার বৈশিষ্ট্যগুলি মিস করছেন এবং মংডোব নদী প্রকল্পটি স্থিতিশীল রাখার জন্য কেবলমাত্র ব্যবহারের উপযুক্ত পণ্য উত্পাদন করে না। এটি বলেছিল যে মংডব নদী অবশ্যই আমি প্রযোজনায় যাব এমন কিছু নয়। এটি তার যোগ্যতার চেয়ে বেশি সমস্যা তৈরি করেছে। এটি এলোমেলোভাবে ভারী বোঝার নিচে লেখাটি ফেলে দেবে, এটি প্রচুর স্মৃতি গ্রাস করবে এবং এটি ক্যাপ করার কোনও বিন্যাস নেই। অতিরিক্তভাবে, রিয়েলটাইমে নদী আপডেট হয় না, এটি মংডব থেকে ওপ্লোগগুলি পড়ে এবং এটি আমার অভিজ্ঞতায় 5 মিনিটের জন্য আপডেটগুলি বিলম্ব করতে পারে।

আমাদের সম্প্রতি আমাদের প্রকল্পের একটি বৃহত অংশটি আবার লিখতে হয়েছিল, কারণ এটি একটি সাপ্তাহিক ঘটনা যা ইলাস্টিক অনুসন্ধানে কিছু ভুল হয়ে যায়। এমনকি আমরা কোনও দেব অপ্স পরামর্শদাতাকে ভাড়া দেওয়ার মতো পদক্ষেপও নিয়েছিলাম, যারা নদী থেকে দূরে সরে যাওয়ার পক্ষেও একমত হন।

হালনাগাদ: ইলাস্টিকসার্চ-মঙ্গোদব-নদী এখন ইএস v1.4.0 এবং মঙ্গডব ভি 2.6.x সমর্থন করে। যাইহোক, আপনি সম্ভবত ভারী সন্নিবেশ / আপডেট ক্রিয়াকলাপগুলির পারফরম্যান্স সমস্যাগুলির মধ্যে চলে যাবেন কারণ এই প্লাগইনটি সিঙ্ক করতে মঙ্গোদবের অপ্লোগগুলি পড়ার চেষ্টা করবে। যদি লকটি আনলক করা হয় (বা পরিবর্তে ল্যাচ করা হয়) থেকে প্রচুর অপারেশন হয়, আপনি আপনার ইলাস্টিক অনুসন্ধান সার্ভারে অত্যন্ত উচ্চ মেমরির ব্যবহার লক্ষ্য করবেন। আপনি যদি বড় কোনও অপারেশন করার পরিকল্পনা করেন তবে নদীটি ভাল বিকল্প নয়। ইলাস্টিক অনুসন্ধানের বিকাশকারীরা এখনও আপনাকে নদী ব্যবহার না করে আপনার ভাষার জন্য ক্লায়েন্ট লাইব্রেরি ব্যবহার করে সরাসরি তাদের এপিআইয়ের সাথে যোগাযোগ করে আপনার নিজস্ব সূচীগুলি পরিচালনা করার পরামর্শ দেন। এটি আসলে নদীর উদ্দেশ্য নয়। কীভাবে নদী ব্যবহার করা উচিত তার টুইটার-নদী একটি দুর্দান্ত উদাহরণ। এটি বাহ্যিক উত্স থেকে ডেটা উত্স করার মূলত দুর্দান্ত উপায়,

এছাড়াও বিবেচনা করুন যে মংগদ্ব-নদী সংস্করণে পিছনে পড়েছে, কারণ এটি ইলাস্টিক অনুসন্ধান সংস্থা দ্বারা পরিচালিত নয়, এটি তৃতীয় পক্ষ দ্বারা রক্ষণাবেক্ষণ করা হয়। বিকাশ v1.0 প্রকাশের পরে দীর্ঘ সময়ের জন্য v0.90 শাখায় আটকে ছিল, এবং যখন ভি 1.0 এর একটি সংস্করণ প্রকাশিত হয়েছিল তখন স্থিতিস্থাপক না হওয়া অবধি স্থিতিস্থাপক V1.3.0 প্রকাশিত হয়নি। মংডব সংস্করণগুলিও পিছনে পড়ে। আপনি যখন কোনও একের পরের সংস্করণে সরে যেতে চাইছেন তখন আপনি নিজেকে খুব শক্ত জায়গায় খুঁজে পেতে পারেন, বিশেষত ইলাস্টিক অনুসন্ধানের সাথে এরকম ভারী বিকাশের অধীনে, পথে বেশ কয়েকটি প্রত্যাশিত বৈশিষ্ট্য রয়েছে। সর্বশেষতম ইলাস্টিক অনুসন্ধানে থাকা আমাদের পক্ষে গুরুত্বপূর্ণ ছিল কারণ আমরা আমাদের অনুসন্ধানের কার্যকারিতাটিকে আমাদের পণ্যের মূল অংশ হিসাবে ক্রমাগত উন্নত করার উপর নির্ভর করি।

আপনি যদি এটি করেন তবে সর্বোপরি আপনি সম্ভবত আরও ভাল পণ্য পাবেন get এটি এতটা কঠিন নয়। এটি আপনার কোডটি পরিচালনা করতে এটির অন্য একটি ডাটাবেস এবং বড় রিফ্যাক্টরিং ছাড়া এটি সহজেই আপনার বিদ্যমান মডেলগুলিতে ফেলে দেওয়া যেতে পারে।


আপনার কি কোনও লিঙ্ক বা পরামর্শ রয়েছে যেখানে আমি লেখক সম্পর্কিত তথ্য প্রকাশনার সূচকে
সূচীকরণ

কিছু ব্যাকগ্রাউন্ডের জন্য এটি পড়ুন elastic.co/guide/en/elasticsearch/guide/cटका
references.html

এটি আপনাকে কীভাবে ডেটা যুক্ত করবে / সম্পর্কিত elastic.co/guide/en/elasticsearch/guide/current/…
tsturzl

1
স্থিতিস্থাপক অনুসন্ধানটি একটি সম্পর্কিত কাগজের চেয়ে ডকুমেন্ট স্টোরেজ ডিবি। স্থিতিস্থাপক অনুসন্ধানে ডেটা সম্পর্কিত করা অসম্ভব নয়, তবে ড্যানোরালাইমাইজেশন হওয়ার সম্ভাবনা বেশি তবে অতিরিক্ত যুক্তি (প্লাগইন রয়েছে) দিয়ে পরিচালনা করা যায়। উপরের লিঙ্কটিতে রাষ্ট্র হিসাবে ডেটা সম্পর্কিত করার সর্বাধিক সাধারণ উপায় হ'ল সম্পর্কিত আইকনে আইডি রেফারেন্স সংরক্ষণ করা। নিশ্চিত হয়ে নিন যে আপনি এই আইডিটি এমন একটি ক্ষেত্রে সংরক্ষণ করেছেন যা সেট করা আছে not_analyzed, অন্যথায় আপনার এটি অনুসন্ধান করতে সমস্যা হবে, বিশ্লেষিত ক্ষেত্রগুলিকে টোকনাইজড করার উপায়টি করুন।
tsturzl

4

আমি মঙ্গো-সংযোজকটি দরকারী বলে মনে করি। এটি মঙ্গো ল্যাবস (মঙ্গোডিবি ইনক।) ফর্ম এবং ইলাস্টিকসার্চ ২.x এর সাহায্যে এখন ব্যবহার করা যেতে পারে

ইলাস্টিক 2.x ডক ম্যানেজার: https://github.com/mongodb-labs/elastic2-doc-manager

মঙ্গো-সংযোজকটি মঙ্গোডিবি ক্লাস্টার থেকে এক বা একাধিক লক্ষ্য সিস্টেমে যেমন পাইকার, ইলাস্টিকসার্ক বা অন্য কোনও মঙ্গোডিবি ক্লাস্টারে পাইপলাইন তৈরি করে। এটি মঙ্গোডিবিতে ডেটা সিঙ্ক্রোনাইজ করে টার্গেট করে তারপরে মোংগোডিবি ওপলগকে লেজ দেয়, রিয়েল-টাইমে মঙ্গোডিবিতে অপারেশন চালিয়ে যায়। এটি পাইথন 2.6, 2.7 এবং 3.3+ দিয়ে পরীক্ষা করা হয়েছে। বিস্তারিত ডকুমেন্টেশন উইকিতে উপলব্ধ।

https://github.com/mongodb-labs/mongo-connector https://github.com/mongodb-labs/mongo-connector/wiki/Usage%20with%20 ইলাস্টিক অনুসন্ধান


4

একবার আপনি প্রায় রিয়েল টাইম সিঙ্ক্রোনাইজেশন এবং সাধারণ সমাধান পেতে চাইলে নদীটি একটি ভাল সমাধান।

আপনার যদি ইতিমধ্যে মঙ্গোডিবিতে ডেটা রয়েছে এবং খুব সহজেই এটি "ওয়ান-শট" এর মতো ইলাস্টিক্সের কাছে পাঠাতে চান তবে আপনি আমার প্যাকেজটি নোড.জেস https://github.com/itemsapi/elasticulk এ চেষ্টা করতে পারেন ।

এটি নোড.জেএস স্ট্রিমগুলি ব্যবহার করছে যাতে আপনি স্ট্রিমগুলি সমর্থন করে এমন সমস্ত কিছু থেকে ডেটা আমদানি করতে পারেন (যেমন মোংগোডিবি, পোস্টগ্রিসএসকিউএল, মাইএসকিউএল, জেএসএন ফাইল, ইত্যাদি)

ইলাস্টিকসার্ক থেকে মঙ্গোডিবির উদাহরণ:

প্যাকেজ ইনস্টল করুন:

npm install elasticbulk
npm install mongoose
npm install bluebird

স্ক্রিপ্ট অর্থাৎ স্ক্রিপ্ট.জেস তৈরি করুন:

const elasticbulk = require('elasticbulk');
const mongoose = require('mongoose');
const Promise = require('bluebird');
mongoose.connect('mongodb://localhost/your_database_name', {
  useMongoClient: true
});

mongoose.Promise = Promise;

var Page = mongoose.model('Page', new mongoose.Schema({
  title: String,
  categories: Array
}), 'your_collection_name');

// stream query 
var stream = Page.find({
}, {title: 1, _id: 0, categories: 1}).limit(1500000).skip(0).batchSize(500).stream();

elasticbulk.import(stream, {
  index: 'my_index_name',
  type: 'my_type_name',
  host: 'localhost:9200',
})
.then(function(res) {
  console.log('Importing finished');
})

আপনার তথ্য পাঠান:

node script.js

এটি অত্যন্ত দ্রুত নয় তবে এটি কয়েক মিলিয়ন রেকর্ডের জন্য কাজ করছে (স্রোতের জন্য ধন্যবাদ)।


3

এখানে কীভাবে মংডোব ৩.০-তে করবেন। আমি এই সুন্দর ব্লগ ব্যবহার করেছি

  1. মংডোব ইনস্টল করুন।
  2. ডেটা ডিরেক্টরিগুলি তৈরি করুন:
$ mkdir RANDOM_PATH/node1
$ mkdir RANDOM_PATH/node2> 
$ mkdir RANDOM_PATH/node3
  1. মঙ্গোদ উদাহরণ শুরু করুন
$ mongod --replSet test --port 27021 --dbpath node1
$ mongod --replSet test --port 27022 --dbpath node2
$ mongod --replSet test --port 27023 --dbpath node3
  1. প্রতিরূপ সেট কনফিগার করুন:
$ mongo
config = {_id: 'test', members: [ {_id: 0, host: 'localhost:27021'}, {_id: 1, host: 'localhost:27022'}]};    
rs.initiate(config);
  1. ইলাস্টিকসার্ক ইনস্টল করা হচ্ছে:
a. Download and unzip the [latest Elasticsearch][2] distribution

b. Run bin/elasticsearch to start the es server.

c. Run curl -XGET http://localhost:9200/ to confirm it is working.
  1. মংগোডিবি নদীটি ইনস্টল ও কনফিগার করছে:

$ বিন / প্লাগইন - ইনস্টল com.github.richardwilly98. ইলাস্টিকসার্চ / ইলাস্টিকসার্চ-নদী-মঙ্গোদব

$ বিন / প্লাগইন - ইলাস্টিকসার্চ / ইলাস্টিকসर्च-ম্যাপার-সংযুক্তি ইনস্টল করুন

  1. "নদী" এবং সূচক তৈরি করুন:

কার্ল-এক্সপুট ' http: // লোকালহোস্ট: 8080 / _রাইভার / মঙ্গোডব / _মেটা ' -d 'type "টাইপ": "মঙ্গডব", "মংডোব": {"ডিবি": "মাইডিবি", "সংগ্রহ": "ফু" }, "সূচক": {"নাম": "নাম", "টাইপ": "এলোমেলো"}} '

  1. ব্রাউজারে পরীক্ষা:

    HTTP: // স্থানীয় হোস্ট: 9200 / _search কুই = বাড়িতে


6
ইলাস্টিক অনুসন্ধানে নদীর প্লাগইনগুলি হ্রাস করা হয়েছে। এটি সন্ধানী সূচী বজায় রাখার সর্বোত্তম উপায় নয়।
tsturzl

3

এখানে আপনার মঙ্গোডিবি ডেটা ইলাস্টিকসर्चে স্থানান্তরিত করার জন্য আমি আরও একটি ভাল বিকল্প পেয়েছি। একটি গো ডেমন যা মঙ্গডবকে রিয়েলটাইমের স্থিতিস্থাপক স্থানে সিঙ্ক করে। এটা মনস্টাচ এটি এখানে উপলব্ধ: মনস্টাচে

এটি কনফিগার এবং ব্যবহার করতে প্রাথমিক সেটপ নীচে।

ধাপ 1:

C:\Program Files\MongoDB\Server\4.0\bin>mongod --smallfiles --oplogSize 50 --replSet test

ধাপ ২ :

C:\Program Files\MongoDB\Server\4.0\bin>mongo

C:\Program Files\MongoDB\Server\4.0\bin>mongo
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2
Server has startup warnings:
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten]
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten]
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
2019-01-18T16:56:44.931+0530 I CONTROL  [initandlisten]
MongoDB Enterprise test:PRIMARY>

পদক্ষেপ 3: প্রতিলিপিটি যাচাই করুন।

MongoDB Enterprise test:PRIMARY> rs.status();
{
        "set" : "test",
        "date" : ISODate("2019-01-18T11:39:00.380Z"),
        "myState" : 1,
        "term" : NumberLong(2),
        "syncingTo" : "",
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1547811537, 1),
                        "t" : NumberLong(2)
                },
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1547811537, 1),
                        "t" : NumberLong(2)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1547811537, 1),
                        "t" : NumberLong(2)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1547811537, 1),
                        "t" : NumberLong(2)
                }
        },
        "lastStableCheckpointTimestamp" : Timestamp(1547811517, 1),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "localhost:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 736,
                        "optime" : {
                                "ts" : Timestamp(1547811537, 1),
                                "t" : NumberLong(2)
                        },
                        "optimeDate" : ISODate("2019-01-18T11:38:57Z"),
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "electionTime" : Timestamp(1547810805, 1),
                        "electionDate" : ISODate("2019-01-18T11:26:45Z"),
                        "configVersion" : 1,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                }
        ],
        "ok" : 1,
        "operationTime" : Timestamp(1547811537, 1),
        "$clusterTime" : {
                "clusterTime" : Timestamp(1547811537, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}
MongoDB Enterprise test:PRIMARY>

পদক্ষেপ 4. " https://github.com/rwynn/monstache/releases " ডাউনলোড করুন । ডাউনলোডটি আনজিপ করুন এবং আপনার প্ল্যাটফর্মের ফোল্ডারে পাথ অন্তর্ভুক্ত করতে আপনার PATH পরিবর্তনশীল সামঞ্জস্য করুন। সেমিডিতে যান এবং টাইপ করুন"monstache -v" সেন্টিমিডে # 4.13.1 করুন মনস্তাসি এটির কনফিগারেশনের জন্য টোমেল ফর্ম্যাট ব্যবহার করে। নামকরণের কনফিগারেশন ফাইল ফাইল কনফিগার করুন। টমল

পদক্ষেপ 5।

আমার config.toml ->

mongo-url = "mongodb://127.0.0.1:27017/?replicaSet=test"
elasticsearch-urls = ["http://localhost:9200"]

direct-read-namespaces = [ "admin.users" ]

gzip = true
stats = true
index-stats = true

elasticsearch-max-conns = 4
elasticsearch-max-seconds = 5
elasticsearch-max-bytes = 8000000 

dropped-collections = false
dropped-databases = false

resume = true
resume-write-unsafe = true
resume-name = "default"
index-files = false
file-highlighting = false
verbose = true
exit-after-direct-reads = false

index-as-update=true
index-oplog-time=true

পদক্ষেপ 6।

D:\15-1-19>monstache -f config.toml

মনস্টেচ চলছে ...

ইলাস্টিকসার্কে মাইগ্রেটেড ডেটা নিশ্চিত করুন

মঙ্গোতে রেকর্ড যুক্ত করুন

মনস্টেচ ইভেন্টটি ক্যাপচার করেছে এবং ডেটা স্থিতিস্থাপক স্থানটিতে স্থানান্তরিত করে


3

যেহেতু এখন মঙ্গো-সংযোজকটি মারা গেছে, তাই আমার সংস্থা সিদ্ধান্ত নিয়েছে যে মঙ্গো পরিবর্তনের স্ট্রিমগুলি ইলাস্টিকসার্কে আউটপুট রূপান্তর করতে পারে।

আমাদের প্রাথমিক ফলাফল আশাব্যঞ্জক দেখাচ্ছে। আপনি এটি https://github.com/electionsexperts/mongo-stream এ দেখতে পারেন । আমরা এখনও উন্নয়নের প্রথম দিকে আছি, এবং পরামর্শ বা অবদানকে স্বাগত জানাব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.