Sphinx फुल-टेक्स्ट सर्च इंजन की स्थापना और कॉन्फ़िगरेशन
Sphinx एक ओपन-सोर्स सर्च इंजन है जो SQL डेटाबेस, टेक्स्ट फाइल्स आदि से विशाल डेटा पर तेज़ फुल-टेक्स्ट खोज प्रदान करता है।
विशेषताएं
- उन्नत इंडेक्सिंग और क्वेरी टूल
- उच्च खोज प्रदर्शन और इंडेक्सिंग
- परिणामों का उन्नत पोस्ट-प्रोसेसिंग
- SQL और XML स्रोतों के साथ आसान एकीकरण
- हजारों क्वेरी प्रति सेकंड के साथ स्केलेबल
पूर्वापेक्षाएँ
- Ubuntu मशीन जिस पर 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 कॉन्फ़िगर करें (/etc/sphinxsearch/sphinx.conf)
सैंपल कॉन्फ़िगरेशन कॉपी करें और संपादित करें:
$ cp /etc/sphinxsearch/sphinx.conf.sample /etc/sphinxsearch/sphinx.conf $ sudo vi /etc/sphinxsearch/sphinx.conf
मुख्य ब्लॉक: source, index, searchd।
Source ब्लॉक
source src1 {
type = mysql
sql_host = localhost
sql_user = root
sql_pass = 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 ब्लॉक
index test {
source = src1
path = /var/lib/sphinxsearch/data/test
docinfo = extern
}
Searchd ब्लॉक
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
क्रॉन जॉब से नियमित इंडेक्सिंग:
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
Sphinx सेवा शुरू करें
$ vi /etc/default/sphinxsearch START=yes $ sudo systemctl restart sphinxsearch.service $ sudo systemctl status sphinxsearch.service
SphinxQL से खोज टेस्ट करें
$ mysql -h0 -P9306
mysql> SELECT * FROM test WHERE MATCH('test'); SHOW META;
Sphinx बिलियन डॉक्यूमेंट्स और टेराबाइट्स डेटा को संभाल सकता है।