MySQL - Wyszukiwanie “google like”
Dużym atutem googlowskiej wyszukiwarki, jest możliwość używania znaków jak ‘-’ czy ‘+’ oraz ‘”‘ . Pozwalają one na znalezienie wyników, np. z pominięciem jakiegoś słowa.
Gdy każemy google, wyszukać “Dell D4020″, to znajdzie zarówno jego recenzje, czy też sklepy w jakich się on znajduje. Jeśli nie chcemy widzieć np. ofert różnych sklepów, wpisujemy “Dell D4020 -sklep” itd. itd.
Aby zaimplementować wyszukiwarkę o takiej możliwości na naszej stronie, trzeba spełnić kilka zasad.
Pole w tabeli, który będzie przeszukiwane, musi być FULLTEXT’owe.
ALTER TABLE usertable ADD FULLTEXT(userfield);
Natomiast samo polecenie wyszukujące, musi być mniej więcej takie:
SELECT Field, MATCH(Field) AGAINST($SEARCH_PHRASE IN BOOLEAN MODE) AS
Score FROM usertable WHERE MATCH(Field) AGAINST (’$SEARCH_PHRASE IN BOOLEAN
MODE);
Gdzie $SEARCH_PHRASE to oczywiście odpowiednio przefiltrowana fraza wyszukująca, jak np. “dell d420 -sklep”.
Po wykonaniu takiego polecenia otrzymamy wszystkie wpisy pasujące do wzorca, mało tego, otrzymamy je wraz z punktami trafności. Jeśli dodamy do tego odpowiednie ORDER BY, otrzymamy je posortowane wg. uznania.
Comments(0)