Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z SELECT MATCH AGAINST
Forum PHP.pl > Forum > Bazy danych > MySQL
macdavido
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
Z tego co pamiętam musisz szukać z IN BOOLEAN MODE, czyli:
  1. SELECT * FROM users WHERE MATCH (name) AGAINST ('+jan +kowalski' IN BOOLEAN MODE)
macdavido
Witaj,
zrobilem dokladnie 2 takie wyszukania
efekt jest praktycznie identyczny sad.gif
jakas paranoia

baza ma index full tekst oczywiscie, wiec juz nic nie kumam
nospor
Czy dla dluzszej frazy, np:
+bogdan +kowalski
też działa źle?
macdavido
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 smile.gif
wookieb
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.