Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Fulltext - wyszukiwanie kilku słów bez użycia operatora
Forum PHP.pl > Forum > Bazy danych
herne
Mam zapytanie takie jak poniżej (w oryginale wyszukuje z większej ilości kolumn):

  1. SELECT $p1,$p2,$p3
  2. FROM $tabela
  3. WHERE MATCH ($p2,$p2,$p3)
  4. AGAINST ('$zapytanie*' IN BOOLEAN MODE)


Działa tak, jak powinno, poza jedną rzeczą - teraz po wpisaniu Adam Mickiewicz znajdzie wszystkie pola rekordy ze słowem Adam i ze słowem Mickiewicz. Oczywiście dodanie w zapytaniu operatora +, - i "" odpowiednio załatwia sprawę, ale jak sam zauważyłem, nikt nie czyta instrukcji i ciężko zmuszać kogokolwiek do używania operatora +. AS score też nie sortuje tak, by rekordy ze wszystkimi słowami były wyżej. Jak można przekształcić zapytanie aby odpowiednio wyświetlało?
nospor
To nie możesz pomyśleć za użytkownika i sam dodać +?
herne
Dokładnie to zapytanie wygląda tak:
  1. AGAINST ('+$zapytanie*' IN BOOLEAN MODE)

więc jest +, ale stawia się przed pierwszym słowem, a nie przed każdym podanym, więc jeśli dobrze kombinuję, to czy trzeba rozbić frazę na poszczególne słowa i każde z osobna poprzedzić plusem? Poza tym po dodaniu przez użytkownika znaku "-", plusa być nie powinno... ale to akurat kwestia prostego "if".
nospor
Cytat
to czy trzeba rozbić frazę na poszczególne słowa i każde z osobna poprzedzić plusem?
No tak.
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.