Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Wyszukiwanie pełnotekstowe - problem
Forum PHP.pl > Forum > Bazy danych > MySQL
matix
Witam.

Tworzę sobie pewien skrypt i napotkałem dość dziwny problem podczas tworzenia wyszukiwarki. Chcę do zrobić za pomocą pełnotekstowego wyszukiwania ze względu na wydajność, gdyż na stronie jest przewidywany ogromny ruch.

Zapytanie SQL:
  1. SELECT *, MATCH (file_title) AGAINST ('adobe') AS score FROM files;


Wynikiem tego w bazie danych jest wyszukiwanie rekordów mających w sobie napis "adobe", lecz z wynikiem (score) - 0.

Pytanie - dlaczego? Przecież powinien znaleźć te rekordy.
artega
Powinien jeżeli zastosujesz klauzule WHERE winksmiley.jpg
  1. SELECT *, MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE) AS score FROM files WHERE MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE)

Jeżeli słowo adobe jest bardzo popularne to zapytanie nic nie zwróci
matix
Wielkie dzięki winksmiley.jpg już śmiga;p
kicek_
Cytat(artega @ 1.05.2008, 13:11:10 ) *
Powinien jeżeli zastosujesz klauzule WHERE winksmiley.jpg
  1. SELECT *, MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE) AS score FROM files WHERE MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE)

Jeżeli słowo adobe jest bardzo popularne to zapytanie nic nie zwróci


Mały komentarz ponieważ powyższa odpowiedź wprowadza w błąd, a trafiłem tutaj z pierwszej strony google. Nie ma konieczności wpisywania MATCH ... AGAINST w klauzuli WHERE. mechanizm MATCH ... AGAINST ma za zadanie określić wartość semantyczną zawartości wiersza do w porównaniu ze wzorcem. Jeżeli koledze nie zadziałało zapytanie dla słowa kluczowego 'adobe', to znaczy (jeżeli zostało zapisane w skrypcie prawidłowo), że słowo występuje w więcej niż 50% wierszy jakie są w tabeli. Takie małe ograniczenie ze strony silnika.
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.