কম্পিউটার

কিভাবে উবুন্টু 16.04 এ স্ফিংস ইনস্টল এবং সেটআপ করবেন


এই প্রবন্ধে, আমরা উবুন্ট 16.04-এ Sphinx কিভাবে ইনস্টল এবং সেটআপ করতে হয় সে সম্পর্কে শিখব, Sphinx হল একটি ওপেন সোর্স সার্চ ইঞ্জিন যা সম্পূর্ণ পরীক্ষা সার্চের অনুমতি দেয়, এবং খুব কার্যকরীভাবে একটি বিশাল ডেটা দিয়ে সার্চ করার ক্ষেত্রে সেরা যেখান থেকে ডেটা হতে পারে। যেকোনো উৎস, (প্রাক্তন − SQL ডেটাবেস, প্লেইন টেক্সট ফাইল, ইত্যাদি,)

স্ফিংক্সের বৈশিষ্ট্যগুলি

  • ক্যোয়ারী করার জন্য উন্নত ইনডেক্স এবং ভালো টুল।

  • উচ্চ অনুসন্ধান কর্মক্ষমতা এবং সূচী।

  • পোস্ট-প্রসেসিংয়ের জন্য অগ্রিম ফলাফল।

  • উন্নত অনুসন্ধানের সাথে সহজেই মাপযোগ্য৷

  • এসকিউএল এবং এক্সএমএল উত্সের সাথে একীভূত করা যেতে পারে৷

  • 1000'স প্রশ্নের সাথে বিশাল ডেটা হস্তান্তরের জন্য মাপযোগ্য হতে পারে।

পূর্বশর্ত

আমরা শুরু করার আগে আমাদের কিছু প্রাক-প্রয়োজনীয় প্রয়োজন ছিল।

  • আমাদের একটি উবুন্টু মেশিন দরকার ছিল যার একটি নন-রুট ব্যবহারকারী মেশিনে সুডো অনুমতি সহ৷

  • মাইএসকিউএল মেশিনে ইনস্টল করা আছে।

মেশিনে স্ফিংক্স ইনস্টল করা হচ্ছে

আমরা apt-get ব্যবহার করে উবুন্টুর একটি নেটিভ প্যাকেজ রিপোজিটরি ব্যবহার করে সরাসরি Sphinx ইন্সটল করতে পারি, নিচে Sphinx ইন্সটল করার কমান্ড দেওয়া আছে।

$ sudo apt-get install sphinxsearch
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libmysqlclient20 libstemmer0d
The following NEW packages will be installed:
libmysqlclient20 libstemmer0d sphinxsearch
0 upgraded, 3 newly installed, 0 to remove and 92 not upgraded.
Need to get 2,608 kB of archives.
After this operation, 20.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://in.archive.ubuntu.com/ubuntuxenial/universe amd64 libstemmer0d amd 64 0+svn585-1 [62.1 kB]
Get:2 https://in.archive.ubuntu.com/ubuntuxenial-updates/main amd64 libmysqlclie nt20 amd64 5.7.15-0ubuntu0.16.04.1 [809 kB]
Get:3 https://in.archive.ubuntu.com/ubuntu xenial/universe amd64 sphinxsearch amd 64 2.2.9-1build1 [1,737 kB]
Fetched 2,608 kB in 2s (986 kB/s)
Selecting previously unselected package libstemmer0d:amd64.
(Reading database ... 117542 files and directories currently installed.)
Preparing to unpack .../libstemmer0d_0+svn585-1_amd64.deb ...
Unpacking libstemmer0d:amd64 (0+svn585-1) ...
Selecting previously unselected package libmysqlclient20:amd64.
Preparing to unpack .../libmysqlclient20_5.7.15-0ubuntu0.16.04.1_amd64.deb ...
Unpacking libmysqlclient20:amd64 (5.7.15-0ubuntu0.16.04.1) ...
Selecting previously unselected package sphinxsearch.
Preparing to unpack .../sphinxsearch_2.2.9-1build1_amd64.deb ...
Unpacking sphinxsearch (2.2.9-1build1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Setting up libstemmer0d:amd64 (0+svn585-1) ...
Setting up libmysqlclient20:amd64 (5.7.15-0ubuntu0.16.04.1) ...
Setting up sphinxsearch (2.2.9-1build1) ...
Adding system user `sphinxsearch' (UID 119) ...
Adding new group `sphinxsearch' (GID 125) ...
Adding new user `sphinxsearch' (UID 119) with group `sphinxsearch' ...
Not creating home directory `/var/run/sphinxsearch'.
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...

স্ফিঙ্কসের জন্য একটি টেস্ট ডেটাবেস তৈরি করা হচ্ছে

এখন আমাদের প্যাকেজের সাথে আসা নমুনা ডেটা ব্যবহার করে একটি টেস্ট ডাটাবেস তৈরি করতে হবে যা আপনাকে পরবর্তী ধাপে স্ফিংস অনুসন্ধানের পরীক্ষা করার অনুমতি দেবে৷

আসুন MySQL-এ লগইন করি যেখানে আমরা টেস্ট ডাটাবেস তৈরি করব এবং নমুনা ডাটাবেস আমদানি করব।

$ mysql –u root –p
mysql> create database test;
Query OK, 1 row affected (0.01 sec)
mysql> SOURCE /etc/sphinxsearch/example.sql;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 10 rows affected (0.01 sec)
Records: 10 Duplicates: 0 Warnings: 0
Mysql> quit

অনুসন্ধানের জন্য স্ফিংক্স কনফিগার করা হচ্ছে

স্ফিংক্সে, আমাদের পরিবেশের জন্য আমাদের 3টি প্রধান ব্লক সম্পাদনা এবং কনফিগার করতে হবে যেখানে প্রয়োজনীয় যেমন সূচক, অনুসন্ধান এবং উত্সগুলি সংজ্ঞায়িত করা হয়েছে, এগুলি কনফিগারেশন ফাইল sphinx.conf-এ পাওয়া যায়, যা /etc/sphinxsearch/sphinx-এ অবস্থিত। conf.sample ফাইলের জন্য আমাদের বিদ্যমান নমুনা কনফিগারেশন ফাইলটিকে /etc/sphinxsearch ফোল্ডারে কপি করতে হবে

$ cp /etc/sphinxsearch/sphinx.conf.sample /etc/sphinxsearch/sphinx.conf
$ sudo vi /etc/sphoxsearch/sphinx.conf

কনফিগারেশন ফাইলটি ব্লক সহ নীচের মত হওয়া উচিত

sphinx.conf-এ উৎস ব্লক

source src1
{
   type = mysql
   #SQL settings (for ‘mysql’ and ‘pgsql’ types)
   sql_host = localhost
   sql_user = roo
   tsql_pass = ubuntu
   sql_db = test
   sql_port = 3306 # optional, default is 3306
   sql_query = \
   SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
   FROM documents
   sql_attr_uint = group_id
   sql_attr_timestamp = date_added
}

sphinx.conf-এ ইনডেক্স ব্লক

index test
{
   source = src1
   path = /var/lib/sphinxsearch/data/test
   docinfo = extern
}
Searchd block in sphinx.conf
searchd
{
   listen = 9312:sphinx #SphinxAPI port
   listen = 9306:mysql41 #SphinxQL port
   log = /var/log/sphinxsearch/searchd.log
   query_log = /var/log/sphinxsearch/testquery.log
   read_timeout = 5
   max_children = 30
   pid_file = /var/run/sphinxsearch/testsearchd.pid
   seamless_rotate = 1
   preopen_indexes = 1
   unlink_old = 1
   binlog_path = /var/lib/sphinxsearch/datatest
}

একবার, আমরা স্ফিংক্সকে সূচী করার জন্য প্রয়োজনীয় কনফিগারেশন সম্পাদনা করি।

Sphinx-এ ইনডেক্স ম্যানেজ করা

এখানে, আমরা পূর্ববর্তী ধাপে সম্পাদনা করা কনফিগারেশন ফাইলগুলি ব্যবহার করে সূচী করব

$ sudo indexer –all
Sphinx 2.2.9-id64-release (rel22-r5006)
Copyright (c) 2001-2015, Andrew Aksyonoff
Copyright (c) 2008-2015, Sphinx Technologies Inc (https://sphinxsearch.com)
using config file '/etc/sphinxsearch/sphinx.conf'...
indexing index 'test'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.007 sec, 24319 bytes/sec, 504.03 docs/sec
total 4 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
total 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg

উৎপাদন পরিবেশে, আমাদের সূচক আপ টু ডেট থাকা দরকার তাই আমরা এর জন্য একটি ক্রোনজব তৈরি করব –

$ crontab –e

ফাইলের শেষে নিম্নলিখিত যোগ করুন।

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf –all

Sphinx পরিষেবাগুলি শুরু করা হচ্ছে

যেহেতু আমরা কনফিগারেশন ফাইলটি ব্যবহার করে সূচীটি কনফিগার করেছি আমাদের এখন স্ফিংস কনফিগারেশন ফাইলটি সম্পাদনা করতে হবে, ডিফল্টরূপে স্ফিংস ডেমন চালু হয়নি আমাদের এই /etc/default/sphinxsearch

এ ফাইলটি সম্পাদনা করতে হবে।
$ vi /etc/default/sphinxsearch
#
# Settings for the sphinxsearch searchd daemon
# Please read /usr/share/doc/sphinxsearch/README.Debian for details.
#
# Should sphinxsearch run automatically on startup? (default: no)
# Before doing this you might want to modify /etc/sphinxsearch/sphinx.conf
# so that it works for you.
START=yes

নিচে স্ফিংস ডেমন স্টার করার কমান্ড দেওয়া হল

$ sudo systemctl restart sphinxsearch.services

একবার আমরা sphinxsearch পরিষেবাগুলি পুনরায় চালু করলে আমরা নীচের কমান্ডটি ব্যবহার করে স্থিতি পরীক্ষা করব

$ sudo systemctl status sphinxsearch.service
sphinxsearch.service - LSB: Fast standalone full-text SQL search engine
Loaded: loaded (/etc/init.d/sphinxsearch; bad; vendor preset: enabled)
Active: active (exited) since Mon 2016-09-19 13:00:20 IST; 1h 10min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 512)
Memory: 0B
CPU: 0
Sep 19 13:00:20 ubuntu-16 systemd[1]: Starting LSB: Fast standalone full-text SQL search engine...
Sep 19 13:00:20 ubuntu-16 sphinxsearch[7804]: To enable sphinxsearch, edit /etc/default/sphinxsearch and set START=ye
Sep 19 13:00:20 ubuntu-16 systemd[1]: Started LSB: Fast standalone full-text SQL search engine.

স্ফিংস অনুসন্ধান পরীক্ষা করা হচ্ছে

এখন আমরা MySQL ইন্টারফেস ব্যবহার করে পোর্ট 9306 ব্যবহার করে SphinxQL এর সাথে সংযোগ করব।

$ mysql -h0 -P9306
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 2.2.9-id64-release (rel22-r5006)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
সাফ করতে '\c' টাইপ করুন

ডাটাবেসে "পরীক্ষা" শব্দের জন্য অনুসন্ধান করুন

mysql> SELECT * FROM test WHERE MATCH('test '); SHOW META;
+------+----------+------------+
| id   | group_id | date_added |
+------+----------+------------+
|    1 |        1 | 1474272578 |
|    2 |        1 | 1474272578 |
|    4 |        2 | 1474272578 |
+------+----------+------------+
3 rows in set (0.00 sec)
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| total         | 3     |
| total_found   | 3     |
| time          | 0.000 |
| keyword[0]    | test  |
| docs[0]       | 3     |
| hits[0]       | 5     |
+---------------+-------+
6 rows in set (0.00 sec)

সেটআপ এবং কনফিগারেশন ব্যবহার করে, আমরা স্ফিংক্সকে একটি শক্তিশালী সার্চ ইঞ্জিন হিসাবে কনফিগার করতে পারি যা আরও দক্ষ এবং বিশাল ডেটা পরিচালনা করতে পারে, স্ফিংস অনুসন্ধান কোটি কোটি নথি পরিচালনা করতে পারে এবং টেরাবাইট ডেটা পরিচালনা করতে পারে যেখানে প্রতি হাজার অনুসন্ধান অনুসন্ধান চালানো যেতে পারে দ্বিতীয়।


  1. উবুন্টুতে প্ল্যাঙ্ক ডক কীভাবে ডাউনলোড, ইনস্টল এবং কনফিগার করবেন

  2. উবুন্টু 20.04 এ কিভাবে ফন্ট ইনস্টল করবেন

  3. কিভাবে সম্পূর্ণরূপে উইন্ডোজ 7 সরান এবং উবুন্টু ইনস্টল করবেন?

  4. কিভাবে Windows 10 বা Windows 11 এ উবুন্টু ইনস্টল করবেন