Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
Witam
Napisałem system tagów , w którym rolę odgrywają dwie tabele: strony(id,nazwa,opis...)i tagi(id,nazwa,nazwaoryginalna,idstrony). Oprócz samych słów przechowywane są też frazy kilku słowne (np. "gry", "darmowe gry" itp.). Problem pojawia się w przypadku, kiedy strona posiada dwa podobne tagi np. "tanie mieszkania" oraz "tanie domy" i w momencie użycia systemu tagów i szukania słowa pasującego do "tanie" w wyszukiwarce mamy zapytanie WHERE tagi.nazwa LIKE "tanie%" i przez to pokazuje w wynikach dwa razy tę samą stronę. Czy można użyć lepszą metodę? Cy jedynym rozwiązaniem jest zaprzestanie użycia znaku % i w ten sposób szukając frazy "tanie mieszania" rozbijamy frazę i używamy zapytania Where tagi.nazwa LIKE "tanie" OR "mieszkania" OR "tanie mieszkania" ? Wydaje mi się, że tego typu metoda może okazać się nieoptymalna w przypadku długich fraz. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
Zapytanie wygląda tak:
i niestety nie uwzględnia select distinic (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (liczy w "ile" również powtarzające się rekordy) Ten post edytował adam882 27.06.2009, 19:28:25 |
|
|
|
adam882 problem z systemem tagów 27.06.2009, 14:05:38
soomal Zamiast SELECT... dajesz SELECT DISTINCT ...
BTW,... 27.06.2009, 15:11:24
adam882 dzięki, jednak problem pojawia się w przypadku uży... 27.06.2009, 17:17:00
maly_swd pokaz zapytanie, wystarczy chyba zmienic grupowani... 27.06.2009, 18:22:59 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 15:11 |