मैं इस पोस्ट पर आया लेकिन मुझे कोई जवाब नहीं मिला जिसे मैं देखना चाहता था। तो यहाँ मेरी त्वरित प्रारंभ मार्गदर्शिका है:
<मजबूत>1. स्फिंक्स स्थापित करें
Homebrew के साथ Mac पर:
brew install sphinx
यम के साथ Amazon Linux (CentOS) पर:
yum install sphinx
<मजबूत>2. स्फिंक्स कॉन्फ़िगरेशन बनाएं
स्फिंक्स कॉन्फिग टेम्पलेट के साथ आता है। कॉन्फ़िगरेशन निर्देशिका में sphinx.conf.dist खोजें:
Homebrew के साथ स्थापित Mac पर:
/usr/local/Cellar/sphinx/<sphinx version>/etc
यम के साथ स्थापित Amazon Linux पर:
/etc/sphinx
यह बहुत सीधा है लेकिन इसमें नौसिखिया के लिए बहुत अधिक सेटिंग्स हो सकती हैं। ऐसे मामले में आप इस सरल विन्यास का उपयोग कर सकते हैं:
source TestSource {
type = mysql
sql_host = <host>
sql_user = <user>
sql_pass = <password>
sql_db = <db>
sql_query_range = select min(id), max(id) from TestTable
sql_range_step = 2048
sql_query = select id, some_info from TestTable\
where id >= $start and id <= $end
}
index TestIndex {
source = TestSource
path = /var/lib/sphinx/test-index
min_word_len = 3
min_infix_len = 3
}
searchd {
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
pid_file = /var/run/searchd.pid
max_matches = 200
listen = localhost:9312
}
मैंने इस कॉन्फिगर में max_matches सेटिंग जोड़ी है क्योंकि सब कुछ काम करने के बाद मेरा पहला सवाल यह था कि "मुझे हमेशा केवल 20 खोज परिणाम ही क्यों मिलते हैं?"। max_matches के साथ आप खोज परिणाम संख्या की सीमा निर्धारित कर सकते हैं।
<मजबूत>3. अनुक्रमणिका का उपयोग करके अनुक्रमणिका बनाएं
indexer --all
<मजबूत>4. स्फिंक्स डेमॉन चलाएं
sudo searchd -c /path/to/config/sphinx.conf
<मजबूत>5. PHP स्फिंक्स एक्सटेंशन इंस्टॉल करें
Homebrew के साथ Mac पर:
brew install homebrew/php/php56-sphinx
यम के साथ Amazon Linux पर:
yum install libsphinxclient
pecl install sphinx
<मजबूत>6. PHP से अपनी अनुक्रमणिका क्वेरी करें
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
किसी भी त्रुटि के मामले में आप निम्न विधि से अधिक जानकारी प्राप्त कर सकते हैं:
$index->getLastError();
<मजबूत>7. अप टू डेट इंडेक्स रखें
अप टू डेट इंडेक्स बनाए रखने के लिए आप दो इंडेक्स का उपयोग कर सकते हैं:
- मुख्य अनुक्रमणिका, जिसे अक्सर अपडेट नहीं किया जाता है (प्रति सप्ताह, महीने, आदि में एक बार)
- और डेल्टा इंडेक्स, जो अक्सर अपडेट होता है (हर घंटे, 5 मिनट, आदि)
हर बार डेल्टा इंडेक्स को फिर से इंडेक्स किया जाता है, इसे मुख्य इंडेक्स में मिला दिया जाता है
इस लिंक का अनुसरण करें http://www.sphinxconsultant.com/sphinx-search-delta -इंडेक्सिंग/ इस दृष्टिकोण के बारे में और अधिक पढ़ने के लिए।
लिंक जो मुझे उपयोगी लगे:
- http://sphinxsearch.com/docs/current.html
- http://sphinxsearch.com/info/faq/
- http://atlchris.com/1996/working-with-sphinx-search-engine-on-a-lamp-linux-apache-mysql-and-php-stack-server/
- http://www.sphinxconsultant.com/sphinx-search-delta -इंडेक्सिंग/
- https://github.com/schmittjoh/ php-स्टब्स/पेड़/मास्टर/res/php/sphinx