Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie die Sphinx-Suchmaschine in PHP
Sphinx ist eine effiziente Suchmaschine. Der Index wird in Festplattendateien erstellt und wird hoffentlich nicht beeinträchtigt es kann jedem helfen.
Sphinx ist eine effiziente Suchmaschine. Der Index wird relativ schnell erstellt und in der Festplattendatei gespeichert stört die Datenbank nicht und verfügt über eine eigene Reihe integrierter Datenbanken
Wenn aptitude nicht installiert ist, müssen Sie zuerst aptitude installieren Die Verwendung von apt get install zur Installation des folgenden Befehls führt zu Problemen.<br> sudo apt-get install aptitude
<br>sudo aptitude install sphinx3 sphinx3-doc sphinxsearch sphinx-common -y
<br> 1
2 |
<br> cd /etc/sphinxsearch/ cp sphinx.conf.sample sphinx .conf |
修改配置文件如下<br>
<br> 1
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2627 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<br> source src1 { type = mysql sql_host = localhost sql_user = root sql_pass = magicmoma sql_db = Coupon_20160901 sql_port = 3306 # optional, Standard ist 3306sql_query = SELECT Couponid,title,description FROM app_coupon_api ##### 需要包含主键,分词索引字段 ######## } index test1 { source = src1 path = /var/lib/sphinxsearch/data/test1 #索引存放目录 docinfo = extern mlock = 0 morphology = none min_word_len = 1 charset_type = utf-8 min_prefix_len = 0 min_infix_len = 0 ngram_len = 1 html_strip = 0 } indexer { mem_limit = 2048M } searchd { listen = 9312 listen = 9306:mysql41 log = /var/ log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 client_timeout = 300 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 mva_updates_pool = 1M max_packet_size = 8M max_filters = 256 max_filter_values = 4096 max_batch_queries = 32 workers = threads # damit RT funktioniert } |
<br>
Das Ausführen des Wortsegmentierungsbefehls generiert eine Reihe von Indexdateien im Verzeichnis /var/lib/sphinxsearch/data/test1 <br>sudo indexer -c /etc/sphinxsearch/sphinx.conf test1
test1 ist der Indexname der oben genannten Konfigurationsdatei
sudo search -c /etc/sphinxsearch/sphinx.conf google
apt-get install aptitude
<br>sudo aptitude install libsphinxclient-dev libsphinxclient-0.0.1 -y
Installieren Sie pecl<br>sudo apt-get install php-pear php5-dev
<br>Installieren Sie php. ini Sphinx-Erweiterung, <br>sudo pecl install sphinx
Meine php.ini-Datei ist
<br>sudo vim /etc/php5/fpm/php.ini
abzurufen
Hinzufügen:<br>extension=sphinx.so
<br>4. Starten Sie php5-fpm neu und prüfen Sie, ob PHP das Sphinx-Modul lädt <br>sudo /etc/init.d/php5-fpm restart
<br>5. Führen Sie das Suchprogramm im Hintergrund aus <br>sudo searchd -c /etc/sphinxsearch/sphinx.conf
<br>Standard-Abhörport in der Konfigurationsdatei: 9312
6. Rufen Sie die Suche in thinkphp auf <br>
<br> 1
2 3 4 5 6 7 8 9 10 11 12 13 |
<br> public function testSphinx() { $s = new SphinxClient; $s->setServer("localhost", 9312); $s- > ;SetArrayResult (true ); $s->setMatchMode(SPH_MATCH_ANY); $s->setMaxQueryTime(3); $result = $s->query("test"); $result = $result['matches']; $result = array_column($result,'id'); $list = M('CouponApi')->field('couponid,title , Beschreibung')->where(array('couponid'=>array('in',$result)))->select(); dump($list ) ; } |
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Sphinx-Suchmaschine in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!