এছাড়াও ওপি এর প্রশ্নের উত্তর থেকে, আমার উপর কিছু অন্তর্দৃষ্টি নিক্ষেপ করা যাক এ্যাপাচি Solr থেকে সহজ ভূমিকা থেকে বিস্তারিত ইনস্টলেশন এবং বাস্তবায়ন ।
সাধারণ ভূমিকা
উপরের সার্চ ইঞ্জিনগুলির সাথে অভিজ্ঞতা রয়েছে এমন যে কেউ, বা তালিকায় নেই এমন অন্য ইঞ্জিনগুলি - আমি আপনার মতামত শুনতে আগ্রহী।
রিয়েল-টাইম সমস্যাগুলি সমাধান করতে সোলার ব্যবহার করা উচিত নয়। অনুসন্ধান ইঞ্জিনগুলির জন্য, সোলার বেশ গেম এবং নির্দোষভাবে কাজ করে ।
সোলার হাই ট্র্যাফিক ওয়েব-অ্যাপ্লিকেশনগুলিতে ভাল কাজ করে ( আমি কোথাও পড়েছি এটি এটির পক্ষে উপযুক্ত নয় তবে আমি সেই বিবৃতিটি সমর্থন করছি )। এটি সিপিইউ নয়, র্যাম ব্যবহার করে।
- ফলাফল প্রাসঙ্গিকতা এবং র্যাঙ্কিং
বুস্ট আপনি রেঙ্ক আপনার ফলাফল শীর্ষ এ প্রদর্শিত করতে সাহায্য করে। বলুন, আপনি একটি নাম জন্য অনুসন্ধান করতে চেষ্টা করছেন জন মাঠে FIRSTNAME এবং LASTNAME , এবং আপনাকে প্রাসঙ্গিকতা দিতে চান FIRSTNAME তারপর আপনি প্রয়োজন ক্ষেত্র, অনুমোদন আপ FIRSTNAME দেখানো হয়েছে ক্ষেত্র।
http://localhost:8983/solr/collection1/select?q=firstname:john^2&lastname:john
আপনি দেখতে পাচ্ছেন, ফার্স্ট নেম ফিল্ডটি 2 এর স্কোর দিয়ে বাড়ানো হয়েছে ।
সোলার রিলেভেন্সি সম্পর্কে আরও
গতি অবিশ্বাস্যভাবে দ্রুত এবং এটিতে কোনও আপস নেই। সোলারে চলে যাওয়ার কারণ ।
সূচকের গতি সম্পর্কে, সোলার আপনার ডাটাবেস টেবিলগুলি থেকে JOINS পরিচালনা করতে পারে । একটি উচ্চতর এবং জটিল JOIN সূচকের গতিকে প্রভাবিত করে। তবে একটি বিশাল র্যাম কনফিগারেশন সহজেই এই পরিস্থিতি মোকাবেলা করতে পারে।
র্যাম তত বেশি, সোলারের সূচকের গতি তত দ্রুত।
- জাজানোয়ের সাথে ব্যবহারের সহজতা এবং একীকরণের সহজতা
সোলার এবং জ্যাঙ্গোকে কখনই সংহত করার চেষ্টা করেনি , তবে আপনি হায়স্ট্যাকের সাহায্যে এটি অর্জন করতে পারেন । আমি একই বিষয়ে কিছু আকর্ষণীয় নিবন্ধ পেয়েছি এবং এটির জন্য গিথুব এখানে ।
- সংস্থান প্রয়োজনীয়তা - সাইটটি একটি ভিপিএসে হোস্ট করা হবে, তাই আদর্শভাবে অনুসন্ধান ইঞ্জিনটির জন্য প্রচুর র্যাম এবং সিপিইউ প্রয়োজন হয় না would
র্যামে সোলার প্রজনন হয়, সুতরাং যদি র্যাম বেশি হয় তবে আপনাকে সোলার সম্পর্কে চিন্তা করতে হবে না ।
সোলারের র্যাম ব্যবহার সম্পূর্ণ সূচকে দেখায় যদি আপনার কিছু বিলিয়ন রেকর্ড থাকে তবে আপনি এই পরিস্থিতি সামাল দিতে স্মার্টভাবে ডেল্টা আমদানি ব্যবহার করতে পারেন। যেমনটি ব্যাখ্যা করা হয়েছে, সোলার কেবলমাত্র একটি কাছের রিয়েল-টাইম সমাধান ।
সোলার অত্যন্ত স্কেলযোগ্য। একটি চেহারা আছে SolrCloud । এর কয়েকটি মূল বৈশিষ্ট্য।
- শারডস (বা শারডিং হ'ল একাধিক মেশিনের মধ্যে সূচক বিতরণের ধারণা, যদি আপনার সূচকটি খুব বেশি বেড়েছে তবে বলুন)
- লোড ব্যালেন্সিং (যদি সোলারজ সোলার মেঘের সাথে ব্যবহার করা হয় তবে এটি রাউন্ড-রবিন প্রক্রিয়া ব্যবহার করে স্বয়ংক্রিয়ভাবে লোড-ব্যালেন্সিংয়ের যত্ন নেয়)
- বিতরণ অনুসন্ধান
- উচ্চ প্রাপ্যতা
- সম্পর্কিত অনুসন্ধানগুলি ইত্যাদির মতো অতিরিক্ত বৈশিষ্ট্য যেমন "আপনি বোঝাতে চেয়েছিলেন?"
উপরের দৃশ্যের জন্য, আপনি সোলারের সাথে প্যাক আপ করা বানান চেক কম্পোনেন্টটি ব্যবহার করতে পারেন । আরও অনেক বৈশিষ্ট্য রয়েছে, স্নোবলপোর্টারফিল্টারফ্যাক্টরি রেকর্ড পুনরুদ্ধারে সহায়তা করে বলে যে আপনি যদি টাইপ করেন তবে বইয়ের পরিবর্তে বই , আপনাকে বই সম্পর্কিত ফলাফল উপস্থাপন করা হবে ।
এই উত্তরটি অ্যাপাচি সোলার এবং মাইএসকিউএল- তে ব্যাপকভাবে ফোকাস করে । জাজানোও সুযোগের বাইরে।
ধরে নিই যে আপনি লিনাক্স পরিবেশের অধীনে রয়েছেন, আপনি এই নিবন্ধটিতে আরও এগিয়ে যেতে পারেন। (আমার একটি উবুন্টু 14.04 সংস্করণ ছিল)
বিস্তারিত ইনস্টলেশন
শুরু হচ্ছে
এপাচি সোলারটি এখান থেকে ডাউনলোড করুন । সংস্করণটি হবে 4.8.1 । আপনি নতুন সংস্করণ ডাউনলোড করতে পারেন, আমি এটি স্থিতিশীল পেয়েছি।
সংরক্ষণাগারটি ডাউনলোড করার পরে এটি আপনার পছন্দসই ফোল্ডারে বের করুন। বলুন .. Downloads
বা যাই হোক না কেন .. সুতরাং এটির মতো দেখাবেDownloads/solr-4.8.1/
আপনার প্রম্পটে .. ডিরেক্টরি ভিতরে নেভিগেট
shankar@shankar-lenovo: cd Downloads/solr-4.8.1
তাই এখন আপনি এখানে ..
shankar@shankar-lenovo: ~/Downloads/solr-4.8.1$
জেটি অ্যাপ্লিকেশন সার্ভার শুরু করুন
জেটিsolr-4.8.1
ডিরেক্টরিটির উদাহরণ ফোল্ডারের ভিতরে পাওয়া যায় , তাই এর অভ্যন্তরে নেভিগেট করুন এবং জেটি অ্যাপ্লিকেশন সার্ভারটি শুরু করুন।
shankar@shankar-lenovo:~/Downloads/solr-4.8.1/example$ java -jar start.jar
এখন, টার্মিনালটি বন্ধ করবেন না, এটি ছোট করুন এবং এটি একপাশে থাকতে দিন।
(টিআইপি: জেটি সার্ভারটিকে পটভূমিতে চালিত করতে স্টার্ট.জারের পরে ও ব্যবহার করুন)
অ্যাপাচি সোলার সফলভাবে চলমান কিনা তা পরীক্ষা করতে , ব্রাউজারে এই URL টি দেখুন। HTTP: // স্থানীয় হোস্ট: 8983 / solr
কাস্টম পোর্টে জেটি চলছে
এটি ডিফল্ট হিসাবে 8983 বন্দরে চালিত হয়। আপনি এখানে বা সরাসরি jetty.xml
ফাইলের অভ্যন্তরে পোর্টটি পরিবর্তন করতে পারেন ।
java -Djetty.port=9091 -jar start.jar
জ্যাকনেক্টরটি ডাউনলোড করুন
এই জেআর ফাইলটি মাইএসকিউএল এবং জেডিবিসির মধ্যে একটি সেতু হিসাবে কাজ করে , এখানে প্ল্যাটফর্ম স্বতন্ত্র সংস্করণ ডাউনলোড করুন
এটি ডাউনলোড করার পরে, ফোল্ডারটি বের করুন এবং কপি করুন mysql-connector-java-5.1.31-bin.jar
এবং এটি lib ডিরেক্টরিতে আটকান ।
shankar@shankar-lenovo:~/Downloads/solr-4.8.1/contrib/dataimporthandler/lib
অ্যাপাচি সোলারের সাথে যুক্ত হওয়ার জন্য মাইএসকিউএল টেবিল তৈরি করা হচ্ছে
করা Solr ব্যবহার করতে, আপনাকে কিছু টেবিল এবং তথ্য জন্য অনুসন্ধান করতে থাকতে হবে। যে জন্য, আমরা ব্যবহার করবে মাইএসকিউএল একটি টেবিল তৈরি করা এবং কিছু র্যান্ডম নাম ঠেলাঠেলি জন্য এবং তারপর আমরা ব্যবহার করতে পারে Solr সাথে সংযোগ স্থাপনের জন্য মাইএসকিউএল এবং যে সূচক টেবিল এবং এটা এন্ট্রি।
1. টেবিল কাঠামো
CREATE TABLE test_solr_mysql
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(45) NULL,
created TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
উপরের টেবিলটি 2.Polulate
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Jean');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Jack');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Jason');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Vego');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Grunt');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Jasper');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Fred');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Jenna');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Rebecca');
INSERT INTO `test_solr_mysql` (`name`) VALUES ('Roland');
মূল ভিতরে andুকে লিবিং নির্দেশিকা যোগ করা
1. নেভিগেট করুন
shankar@shankar-lenovo: ~/Downloads/solr-4.8.1/example/solr/collection1/conf
2. solrconfig.xML সংশোধন করা
এই ফাইলটিতে এই দুটি নির্দেশ যুক্ত করুন ..
<lib dir="../../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
এখন ডিআইএইচ যোগ করুন (ডেটা ইমপোর্ট হ্যান্ডলার)
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler" >
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
3. db-data-config.xML ফাইলটি তৈরি করুন
যদি ফাইলটি বিদ্যমান থাকে তবে তা উপেক্ষা করুন, এই ফাইলটিতে এই লাইনগুলি যুক্ত করুন। আপনি প্রথম লাইনটি দেখতে পাচ্ছেন, আপনার আপনার মাইএসকিউএল ডাটাবেসের শংসাপত্রাদি সরবরাহ করতে হবে । ডাটাবেসের নাম, ব্যবহারকারীর নাম এবং পাসওয়ার্ড।
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/yourdbname" user="dbuser" password="dbpass"/>
<document>
<entity name="test_solr" query="select CONCAT('test_solr-',id) as rid,name from test_solr_mysql WHERE '${dataimporter.request.clean}' != 'false'
OR `created` > '${dataimporter.last_index_time}'" >
<field name="id" column="rid" />
<field name="solr_name" column="name" />
</entity>
</document>
</dataConfig>
(টিপ: আপনার কয়েকটি সংখ্যক সত্ত্বা থাকতে পারে তবে আইডি ক্ষেত্রে নজর রাখতে পারেন, যদি সেগুলি একই হয় তবে সূচি বাদ দেওয়া হবে))
4. স্কিমা.এক্সএমএল ফাইলটি পরিবর্তন করুন
এটি আপনার স্কিমা.এক্সএমএল হিসাবে প্রদর্শিত হিসাবে যুক্ত করুন ..
<uniqueKey>id</uniqueKey>
<field name="solr_name" type="string" indexed="true" stored="true" />
বাস্তবায়ন
ইন্ডেক্সিং
আসল চুক্তিটি এখানেই। সোলার প্রশ্নের ব্যবহার করতে আপনাকে মাইএসকিউএল থেকে সোলার ইনর্ডারে ডেটা ইনডেক্সিং করতে হবে।
পদক্ষেপ 1: সোলার অ্যাডমিন প্যানেলে যান
আপনার ব্রাউজারে URL টিপুন: http: // লোকালহোস্ট: 8983 / সোলার । স্ক্রিনটি এভাবে খোলে।
চিহ্নিতকারীটি ইঙ্গিত হিসাবে, উপরের কনফিগারেশনের কোনওটিতে ত্রুটি হয়েছে কিনা তা পরীক্ষা করতে লগিং ইনর্ডারে যান।
পদক্ষেপ 2: আপনার লগ পরীক্ষা করুন
ঠিক আছে তাই এখন আপনি এখানে আছেন, যেমন আপনি পারবেন প্রচুর হলুদ বার্তা (সতর্কতা)। নিশ্চিত করুন যে আপনার কাছে লাল চিহ্নযুক্ত ত্রুটিযুক্ত বার্তা নেই। এর আগে, আমাদের কনফিগারেশনে আমরা আমাদের ডিবি-ডেটা- কনফিগারেশন.এক্সএমএলে একটি নির্বাচিত ক্যোয়ারী যুক্ত করেছি , বলুন যে কোয়েরিতে কোনও ত্রুটি থাকলে এটি এখানে প্রদর্শিত হত।
ভাল, কোন ত্রুটি। আমরা যেতে ভাল। চিত্রিত হিসাবে তালিকা থেকে সংগ্রহ 1 চয়ন করুন এবং ডেটািমপোর্ট নির্বাচন করুন
পদক্ষেপ 3: ডিআইএইচ (ডেটা আমদানি হ্যান্ডলার)
DIH ব্যবহার করে, আপনি সাথে সংযোগ হতে হবে মাইএসকিউএল থেকে Solr কনফিগারেশন ফাইল মাধ্যমে ডিবি-ডেটা-config.xml থেকে Solr ইন্টারফেস এবং ডাটাবেসের যা সম্মুখের ইন্ডেক্স পরার থেকে 10 রেকর্ড পুনরুদ্ধার Solr ।
এটি করতে, পূর্ণ-আমদানি চয়ন করুন এবং ক্লিন অ্যান্ড কমিট বিকল্পগুলি চেক করুন । এখন প্রদর্শিত হিসাবে এক্সিকিউট ক্লিক করুন ।
বিকল্পভাবে, আপনি এটির মতো সরাসরি পূর্ণ-আমদানি ক্যোয়ারীও ব্যবহার করতে পারেন ..
http://localhost:8983/solr/collection1/dataimport?command=full-import&commit=true
আপনি এক্সিকিউট ক্লিক করার পরে , সোলার রেকর্ডগুলি সূচীকরণ শুরু করে, যদি কোনও ত্রুটি থেকে থাকে তবে এটি সূচী ব্যর্থ হবে এবং কী ভুল হয়েছে তা দেখতে আপনাকে লগিং বিভাগে ফিরে যেতে হবে ।
এই কনফিগারেশনে কোনও ত্রুটি নেই এবং যদি সূচীকরণ সফলভাবে সম্পন্ন হয় তবে ধরে নেওয়া যায়, আপনি এই বিজ্ঞপ্তিটি পাবেন।
পদক্ষেপ 4: সোলার ক্যোয়ারি চালানো
দেখে মনে হচ্ছে যে সবকিছু ঠিকঠাক হয়েছে, এখন আপনি সূচিযুক্ত ডেটা অনুসন্ধান করতে সোলার ক্যোরিগুলি ব্যবহার করতে পারেন । বামদিকে ক্যোয়ারী ক্লিক করুন এবং তারপরে নীচে এক্সিকিউট বোতামটি টিপুন ।
প্রদর্শিত হিসাবে আপনি সূচী রেকর্ড দেখতে পাবেন।
সমস্ত রেকর্ড তালিকার জন্য সংশ্লিষ্ট সোলার ক্যোয়ারী হ'ল
http://localhost:8983/solr/collection1/select?q=*:*&wt=json&indent=true
ঠিক আছে, সমস্ত 10 সূচী রেকর্ড আছে। বলুন, জা এর সাথে শুরু করে আমাদের কেবল নামগুলি দরকার solr_name
, এক্ষেত্রে আপনার কলামের নামটি লক্ষ্য করা দরকার , সুতরাং আপনার প্রশ্নের উত্তর এইরকম।
http://localhost:8983/solr/collection1/select?q=solr_name:Ja*&wt=json&indent=true
আপনি সল ক্যোয়ারী লিখুন কিভাবে । এটি সম্পর্কে আরও পড়তে, এই সুন্দর নিবন্ধটি দেখুন ।