![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 2 Dołączył: 10.07.2007 Ostrzeżenie: (10%) ![]() ![]() |
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? |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 12:08 |