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.