macdavido
2.02.2011, 15:54:44
Witajcie ponownie
Ostatnio natrafilem na dziwny problem z wyszukiwanie FT. Ponizej jak to robie:
SELECT * FROM users WHERE MATCH (name) AGAINST ('+jan +kowalski')
Z tego co juz wyczytalem i znalazlem w sieci (Google tez) '+jan +kowalski' powinno wyszukiwac pozycje zawierajace oba wyrazy nie tylko jeden z nich, dla jednego z nich byloby jak rozumiem 'jan kowalski'. I tu mam koszmarny problem. baza jest duza wiec tego typu osob wypada bardzo duzo, najczesniej sa to Krzysztof Kowalski, Bogtdan Kowalski... itd
W manualu na mysql stoi jak byk ze powinienem otrzymac kombinacje wynikow z tymi dwoma wyrazami czy tez forma odwrotna Kowalski Jan na przyklad. O co tu chodzi. jakis update potrzebny?
Dzieki za sugestie.
TheTester
2.02.2011, 16:08:13
Z tego co pamiętam musisz szukać z
IN BOOLEAN MODE, czyli:
SELECT * FROM users WHERE MATCH (name) AGAINST ('+jan +kowalski' IN BOOLEAN MODE)
macdavido
3.02.2011, 10:52:47
Witaj,
zrobilem dokladnie 2 takie wyszukania
efekt jest praktycznie identyczny

jakas paranoia
baza ma index full tekst oczywiscie, wiec juz nic nie kumam
nospor
3.02.2011, 11:36:50
Czy dla dluzszej frazy, np:
+bogdan +kowalski
też działa źle?
macdavido
3.02.2011, 15:34:27
Wlasnie sie zorientowalem i jest ok
dokladnie o dlugosc frazy chodzi
jest od 4 znakow :/
eh normalnie zalamac sie mozna ze tyle szukania a tu prosze najprostrza odpowiedz
dzieki
wookieb
3.02.2011, 15:35:53
Zacznijmy od tego ile masz rekordów w bazie i jakie są w nich dane. druga sprawa czy zapoznałeś się dokładnie z FULLTEXT czy zrobiłeś tak "o" ?
nospor
3.02.2011, 18:01:53
W mysql można zmienic tę ilosc by dzialalo i na trzech znakach. Ale nie pamiętam teraz nazwy. Zmienia się parametr w pliku my.ini - poszukaj
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.