Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Sortowanie Wg trafności
Taifun
post
Post #1





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

Ostrzeżenie: (10%)
X----


witam,
mam tagi np.
-tag1
-coś tam 2
-test 3

I chcę znaleźć artykuł, który posiada najwięcej danych tagów (np. artykuł , który ma wszystkie tagi wyżej wymienione jest pierwszy)
Jak to osiągnąć najskuteczniej?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A ja mam inny pomysł ciut. Do bazy zapisujesz dla danego artykułu tagi sobie jako osobna kolumna. Nakładasz na nią index Fulltext. W zapytaniu dajesz MATCH ... AGAINST.... IN BOOLEAN MODE i robisz sortowanie po wyniku jaki daje. Boolean mode daje to, że jeśli wyraz istnieje - oznaczy jako true, jeśli nie to da false i nie będzie ważne czy wyraz trafił się raz czy sto w tagach (IMG:style_emoticons/default/smile.gif) Tu i tak jest tylko 1 dla true, a 0 dla false dla każdego słowa z osobna (IMG:style_emoticons/default/wink.gif) Tak więc trafi 3 z 5 to dostanie w wyniku 3 punkty, a trafi wszystkie 5 to dostanie 5, nieważne czy któryś z wyrazów w tagach powtórzy się raz czy 10 razy (IMG:style_emoticons/default/wink.gif) Fulltext ma jednak swoje ograniczenia, więc zapoznaj się wcześniej z nimi, czy aby na pewno to jest to, o co Ci chodzi.

Oczywiście jest to jedenz pomysłów, który odrzucił wNogachSpisz, ale przeszukiwanie tagów przy jego użyciu powinno być szybkie, gdyż mamy ograniczoną do tagów jedynie treść indeksowaną, a nie długie teksty.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 12:08