sql >> Databasteknik >  >> RDS >> Mysql

Guide till att använda Sphinx med PHP och MySQL

Jag stötte på det här inlägget men hittade inget svar jag ville se. Så här är min snabbstartsguide:

1. Installera Sphinx

På Mac med Homebrew:

brew install sphinx

På Amazon Linux (CentOS) med yum:

yum install sphinx

2. Skapa Sphinx config

Sphinx kommer med konfigurationsmall. Leta efter sphinx.conf.dist i configs-katalogen:

På Mac installerad med Homebrew:

/usr/local/Cellar/sphinx/<sphinx version>/etc

På Amazon Linux installerat med yum:

/etc/sphinx

Det är ganska enkelt men kan innehålla för många inställningar för en nybörjare. I sådana fall kan du använda den här enkla konfigurationen:

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
}

Jag lade till inställningen max_matches i den här konfigurationen eftersom min första fråga efter att jag fick allt att fungera var "Varför får jag alltid bara 20 sökresultat?". Med max_matches kan du ställa in gränsen för antalet sökresultat.

3. Skapa index med indexerare

indexer --all

4. Kör Sphinx daemon

sudo searchd -c /path/to/config/sphinx.conf

5. Installera PHP Sphinx extension

På Mac med Homebrew:

brew install homebrew/php/php56-sphinx

På Amazon Linux med yum:

yum install libsphinxclient
pecl install sphinx

6. Fråga ditt index från PHP

$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);

$result = $index->query('some search term', 'TestIndex');

print_r($result);

Vid eventuella fel kan du få mer information med följande metod:

$index->getLastError();

7. Håll dig uppdaterad index

För att hålla ett uppdaterat index kan du använda två index:

  1. Huvudindex, som inte uppdateras ofta (en gång i veckan, månad, etc.)
  2. Och deltaindex, som uppdateras ofta (varje timme, 5 min osv.)

Varje gång deltaindex återindexeras slås det samman med huvudindexet

Följ denna länk http://www.sphinxconsultant.com/sphinx-search-delta -indexering/ för att läsa mer om detta tillvägagångssätt.

Länkar som jag tyckte var användbara:



  1. Hur MATCH MOT fungerar i MariaDB

  2. Val av lagringsmotor:Aria

  3. JDBC Skapa tabell Exempel Användningsförklaring

  4. Hur man utför rullande uppgraderingar för MySQL