Sphinx একটি ওপেন-সোর্স ফুল-টেক্সট সার্চ ইঞ্জিন যা বড় ডেটাসেটে খুব দ্রুত এবং কার্যকর সার্চ প্রদান করে। এটি SQL ডেটাবেস, প্লেইন টেক্সট ফাইল ইত্যাদি থেকে ডেটা ইনডেক্স করতে পারে।
Sphinx-এর رئيسية বৈশিষ্ট্য
- অ্যাডভান্সড ইনডেক্সিং এবং কোয়েরি টুল
- উচ্চ পারফরম্যান্স সার্চিং এবং ইনডেক্সিং
- রেজাল্ট পোস্ট-প্রসেসিং সুবিধা
- সহজে স্কেলেবল
- SQL এবং XML ডেটা সোর্স সাপোর্ট
- হাজার হাজার কোয়েরি প্রতি সেকেন্ড হ্যান্ডেল করতে পারে
পূর্বশর্ত
- Ubuntu মেশিন (non-root user with sudo)
- MySQL ইনস্টলড
Sphinx ইনস্টলেশন
$ sudo apt-get install sphinxsearch
এটি libmysqlclient20, libstemmer0d সহ ইনস্টল করবে।
টেস্ট ডেটাবেস তৈরি
$ mysql -u root -p mysql> CREATE DATABASE test; mysql> SOURCE /etc/sphinxsearch/example.sql; mysql> QUIT;
Sphinx কনফিগারেশন (sphinx.conf)
কনফিগ ফাইল কপি ও এডিট করুন:
$ cp /etc/sphinxsearch/sphinx.conf.sample /etc/sphinxsearch/sphinx.conf $ sudo vi /etc/sphinxsearch/sphinx.conf
Source Block
source src1 {
type = mysql
sql_host = localhost
sql_user = root
sql_pass = your_password
sql_db = test
sql_port = 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
}
Index Block
index test {
source = src1
path = /var/lib/sphinxsearch/data/test
docinfo = extern
}
Searchd Block
searchd {
listen = 9312:sphinx
listen = 9306:mysql41
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/data
}
ইনডেক্সিং
$ sudo indexer --all
ক্রোনজব দিয়ে অটো ইনডেক্সিং
$ crontab -e # যোগ করুন: @hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
Sphinx সার্ভিস শুরু
$ sudo vi /etc/default/sphinxsearch # START=yes সেট করুন $ sudo systemctl restart sphinxsearch $ sudo systemctl status sphinxsearch
SphinxQL দিয়ে টেস্ট সার্চ
$ mysql -h0 -P9306
mysql> SELECT * FROM test WHERE MATCH('test');
SHOW META;
Sphinx বিলিয়ন ডকুমেন্ট এবং টেরাবাইট ডেটা হ্যান্ডেল করতে পারে, যা এটিকে এন্টারপ্রাইজ-গ্রেড সার্চ সমাধান করে তোলে।