Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiarka pełnotekstowa
Forum PHP.pl > Forum > Bazy danych > MySQL
Legion
Witam,

próbuję napisać wyszukiwarkę pełnotekstową skonstruowałem takie zapytanie

  1. SELECT *, MATCH(tytul) AGAINST('slowo1 slowo2' IN BOOLEAN MODE) AS trafnosc FROM cms_products WHERE MATCH(tytul) AGAINST('slowo1 slowo2' IN BOOLEAN MODE) AND MATCH(tresc) AGAINST('slowo1 slowo2' IN BOOLEAN MODE) ORDER BY trafnosc DESC


to zapytanie zwraca produkty w którego tytule i treści występuje co najmniej jedno ze słów. Pytanie jak przekształcić to zapytanie żeby zwracało produkt tylko wtedy gdy np w tytule wystąpi słowo1 oraz w treści wystąpi słowo2 (dowolna kombinacja ważne aby występowały te dwa słowa nie koniecznie obok siebie)

Pozdr
ulow
stworzyć indeks słow. więcej o wyszukiwarce jest w dziale pro winksmiley.jpg
Legion
W tabeli są utworzone indexy fulltext dla kolumn tytuł i tresć.
mkozak
  1. SELECT *, (MATCH(artist) AGAINST('Paolo Sade' IN BOOLEAN MODE) + MATCH(title) AGAINST('Paolo Sade' IN BOOLEAN MODE)) AS efekt
  2. FROM album


Na innej tabeli, bo taką akurat miałem u siebie, ale zasada jest ta sama.
Jeżeli 'efekt' = 2 znaczy wystąpiło jedno ze słów w obu kolumnach
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.