Hogyan kell telepíteni és konfigurálni a Szfinx

Hogyan kell telepíteni és konfigurálni a Szfinx.

Töltse le a Sphinx (vegyük a MySQL verzió és származó 15 nyelven Win32 bináris w / MySQL + PgSQL + libstemmer + id64 támogatja az érintett bitmélységet az OS), csomagold ki, mint a d: \ temp \ s \

A telepítés befejezése után a szfinx. A debiane csak nem sudo apt-get install sphinxsearch.

Írja konfiguráció egy indexelő, mint például d: \ temp \ s \ sphinx.conf alapú sphinx-min.conf.in, kézi és intuíció (sphinx.conf csatolt fájlt az alábbiakban.).

A upomnyauty config mappa és napló adatok, így sozadem őket d: \ temp \ s \

Az attribútumok (hozzáadott és téma) - ez a szám tárolható a keresési index, és majd őket a keresési feltétel (keresni egy bizonyos téma, vagy dátum szerinti rendezés).

(Linux alatt a nyomtatási indexelő egyszerűen azért, mert ott van a rendszerben regisztrált mappa). Ha minden rendben van, a szöveg jelzi, és nem fogjuk látni:

indexelés index 'index_news'.

FIGYELMEZTETÉS: collect_hits: mem_limit = 20480 KB túl alacsony, növekvő, hogy 25.856 kb

Kis memória szükséges legalább 25 MB (és miért annyira?)

összesen 4 Docs, 1418 bájt

összesen 0,030 sec, 45.854 bájt / sec, 129,34 docs / sec

4 dokumentum az adatbázis index

Ok, az index jön létre az adatok papa, ellenőrizze, hogy a keresés? újonc

Ez pechalka, nincs találat. Mégis, vindovyh konzol nem tudja, hogyan kell az UTF-8 és torzítja a bukovki. Próbálja angol:

Sphinx adta vissza id hírek, finom. Most fut a démon keresés és folytassa a PHP (és a támogatási utf-8). Indítsa el a démont:

(--console hogy nem próbált elmenekülni a háttérben, és lehet állítani a Ctrl + C). És lesznek jelek, hogy minden rendben van. PHP a szfinx csatlakoztatható 2 módon:

  • a mysql-kompatibilis protokollt kapcsolódni a démont egy adatbázist, és keressük meg az SQL-lekérdezések
  • sphinx.api.php és használja a bináris protokollok

Kezdjük lehetőség van: 1. Az írás teszt-sql.php (az alkalmazás kódját).

Fuss, hogy a konzol, vagy egy web böngésző és a szerver (keresés démonnak futnia kell, természetesen). Ha minden rendben van, válaszul tömböt ad vissza, mint ez, az id a dokumentum és az attribútumai:

Run, lásd még egy sor eredmények. Nos, ha minden jól működik.

Ha megpróbáljuk megkeresni a szót alapuló elhajlás, mint például a „képzések” nem talál semmit, mert a szövegben nincs szó. Ez nem jó. Nézzük megjavítani segítségével beépített funkciók a Szfinx.

Csatlakozás a magyar és angol nyelven. stemmer, az írás a config szakasz index_news:

Az index önmagában nem frissíti, így megállítani a démon (Ctrl + C), futtassa újra index és indítsa újra a démont (a démon fut a háttérben, akkor adjuk meg a kulcsot --rotate indexelőt és megkér, hogy indítsa újra a démont indexek, a keresési művelet nem szakad meg) :

Most próbálja keresni a „természetesen” egy PHP-script. Mindent meg kell dolgozni.

Lemmatayzer biztosan jobban működik, ezért jobb, ha letölti a szükséges szótárak és csatlakozáshoz.

Sphinx is vágni HTML-címkék és dekódolni a HTML-entitás (html_strip paraméter), meg egy sor karakter (charset_table), kivételek és szinonimái (wordforms és kivételek).

Megadhatja, hogy mely karakterek, és nem része a szó (pl szava elválasztott aláhúzás eltérőnek tekinthető).

Továbbá, a Szfinx építhet töredékeket találatokat (vágott darab szöveg mellett a kiemelt kulcsszó) által BuildExcerpts () függvény az API-t.

Ok, van egy keresési indexet. De hogyan lehet frissíteni, ha új adat a hozzáadott vagy törölt, az öreg? Nos, az eltávolítása egyszerű, ha szfinx visszatért hozzánk nem létező id a naplóba -, akkor el kell távolítani. Hogyan adjunk adatok az index?

  • fő index tartalmazza az összes bejegyzést (vagy az összes régebbi bejegyzések egy bizonyos időpontban), teljesen felújított óránként / nap mennyiségű adatot zaivisimosti
  • RT-index, amely tárolja Csak az új adatok, amelyek nem szerepelnek a fő index, amely valós időben frissül, amelyet törölhetünk újra indexelés

Add RT-index a konfigurációs:

Ok, most a indexelőt és indítsa újra a démont. Hozzáadása Rt-indexet az SQL-lekérdezések, így veszi az sql-test.php és kissé utómunka:

Futtatni a fájlt. Most keresés győződjön meg arról, hogy a keresést a szó „ellenőrzés” és a „valós idejű” ad nekünk az eredményeket. Ha keres SQL-en keresztül, nem pedig a api, ne felejtsük el, hogy meghatározza a lekérdezés mindkét index (SELECT (FROM index_news, rt_news.)).

Az index lehet frissíteni végrehajtása révén új bejegyzés azonos azonosítót a CSERE ellenőrizze:

Mutassuk meg, hogy ez most keresi a macska szó, és a szó valós idejű rezaltotov sem.

Nos, akkor is törölni rekordokat RT-index a delete rt_news WHERE id IN (1, 2, 3)

  • Üzemeltető vagy: szó1 | word2
  • Operator NEM: szó1 -slovo2
  • Merevítő csoportosulás
  • mngogo és más lehetőség van a manuális

Akkor rendezni és csoportos eredményeket különböző attribútumokat.