ugrás a tartalomhoz

MySQL fulltext szóvégre keresés megoldható? [LIKE '%macska'] szerűen

laji · 2009. Okt. 5. (H), 17.11
Üdv mindenkinek!

PHP+MySQL környezet. Van ugyan egy PHP-függvényem, ami jól keres, észtani [logical] műveleti jeleket is értelmezve, LIKE-ot alkalmazva - csak lassú. Kéne a MySQL fulltext keresés gyorsasága. Néhány (szerintem) hibáját tudom orvosolni, de egyet nem sikerült, márpedig anélkül szerintem használhatatlan.

Ha egy tábla egy oszlopában van egy szó, "kismacska", a "macska"-ra keresve meg lehet valahogy találni fulltext kereséssel? Ugyanis szótöredékre ugyan kereshetek, de csak ha a szó eleje rögzített. Tehát:
SELECT * FROM tábla WHERE MATCH(oszlop) against('macsk*' IN BOOLEAN MODE)
Megtalálja: macskák, macskáim, macskát...
De nem találja meg: kismacska, nagymacska...

Létezik rá megoldás?
 
1

szerénytelenül...

gphilip · 2009. Okt. 5. (H), 17.56
... ajánlom ezt a bejegyzést:
http://blog.tcz.hu/php-mysql-szoveges-kereses-maskepp/

személy szerint nem szeretem a fulltext keresést :)
2

Érdekes és szép

laji · 2009. Okt. 5. (H), 18.08
...de ez valóban erősen saját igényekre szabott. Én azt szeretném, hogy állandóan friss legyen a keresés (nem használhatok időzítőt), a súlyozás viszont számomra értéktelen, amúgy is magam rendezem a találatokat. Viszont fontos lenne, hogy az átlag látogató elképzelése szerint működjék, tehát macskára keresve ha törik, ha szakad, találja meg a kismacskát. Mint említettem, a LIKE-os PHP-függvényem saját szempontjaim szerint kifogástalan, csak lassú - tehát csak a gyorsaság végett kéne a fulltext.
3

Text search engine?

janoszen · 2009. Okt. 5. (H), 18.47
Mi lenne, ha kifejezetten fulltext szörcsögésre való enginet használnál? Pl: http://lucene.apache.org/java/docs/ (nem ismerem, csak tudom, hogy létezik)
4

Valószínűleg nem telepíthetem.

laji · 2009. Okt. 5. (H), 18.55
Belefutottam a guglin a lucene szóba, de ez valószínűleg valami bővítmény. Ingyenes tárhely, kizárt, hogy telepíthetem.
5

A Lucene-t használja a Zend php-bővítmény.

laji · 2009. Okt. 5. (H), 19.13
De sajnos, csak >=PHP5.
atw.hu: php 4.3 :(

Mindenesetre bárki másnak, aki PHP5-t használhat, valószínűleg tökéletes megoldás.
6

PHP 4?

janoszen · 2009. Okt. 5. (H), 19.18
Őőőőő nem azért, de a PHP 4 igen erőteljesen nagyon régen unsupported. Már a download linkjét se találod meg. Arról nem is beszélve, hogy ingyenes, de még a fizetős tárhelyek többségén aligha tudsz Javas szervert futtatni. Ha félig komolyan gondolod a webfejlesztést, akkor sztem keress valami normális webhostot. Havi sör áráért lehet már egész normális tárhelyeket kapni. Ha akarod, mondok egyet, de csak privátban, mert a tisztelt munkaadóm szolgáltatása és a végén még önreklám lenne. De akár kereshetsz is, csak figyelj oda, milyen vason laksz.
8

offtopic

Carter · 2009. Okt. 6. (K), 17.56
Mennyit iszol te havonta? :D
10

Off: semennyit

janoszen · 2009. Okt. 6. (K), 22.56
Alapvetően semennyit. Ellenpéldaként 2 héttel ezelőtt voltam életemben először másnapos (25 évesen). Ismerős szülinapja volt és hát... Innentől kezdve gondolom egyértelmű, hogy enyhén kocka vagyok. :)

Szerk: leesett a kérdés lényege, nem voltam a témánál. Szóval a munkaadóm áraiból kiindulva domainnel együtt is megáll havi 1000 Ftnál és azt tudom, hogy normális gépeken van (illetve ki is van írva).
7

Magyarázom a bizonyítványt...

laji · 2009. Okt. 5. (H), 19.33
Naszóval... Nem egy létkérdés ennek az oldalnak a fejlesztése vagy akár fenntartása. Máshová áthelyezni, stb. nem éri meg a munkát. Nagyobbrészt kiváncsiságból kérdeztem, de a válasz már megvan - Zend. Ehhez viszont köszönöm a segítséget, hasznos volt - ha Te szakemberként a Lucene-be futottál bele, akkor tényleg ebben az irányban kellett kereskedni. Még majd legfeljebb egy órát rááldozok, hátha mégis gyorsan ráhúzható a zend a lapomra - ugyanis érdekes módon a zend_version() PHP-függvény működik az atw-n, s ki is adja, hogy 1.3.0.

Még egyszer köszönöm, s jó éjt!

Zárszóként tehát mindenkinek a megoldás:
Lucene
, a PHP-ban
Zend
néven.
9

Megoldás

janoszen · 2009. Okt. 6. (K), 20.49
Ezt most nem egészen értem. A Zend engine hogy függ össze a fulltext kereséssel? Én maradtam le valamiről, amióta elmentem rendszergazdának? (Azon kívül, hogy van hozzá connector, persze...)

Másik ötlet: egyik ismerősnek volt az a nem kicsit ragyogó ötlete, hogy PHPval indexet épít a szavakból, amik előfordulhatnak. A konkrét megvalósítást nem mondom el, azt elmondja, ha még erre kolbászol, ellenben ezen a vonalon is el lehet indulni.
13

Zend és fulltext

laji · 2009. Okt. 8. (Cs), 11.32
Elnézést, lemaradtam. A Zend-be be van építve a Lucene kereső, ami szóvégre is keres. Legalábbis ezt hámoztam ki, de részletesebben nem olvastam bele.
11

Facepalm Tyrael

Tyrael · 2009. Okt. 7. (Sze), 11.12
Facepalm

Tyrael
12

Hát ha már idáig megyünk...

gphilip · 2009. Okt. 7. (Sze), 17.04
...akkor csakis Sphinx!