Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> "Zobacz też" - jak zrobić?, Oparte na tagach
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Chcę na stronie zrobić ramkę "Zobacz też" przy każdym newsie. W ramce byłyby prezentowane 3 podobne tematycznie inne wiadomości. Oparte miałoby to być na tagach, tak chyba najłatwiej. W każdym newsie mam pole 'tagi' i tam wypisuje je po przecinku. Jak zrobić żeby spośród tych tagów wybierało te ważniejsze (czyli te które są napisane w pierwszej kolejności) i wg nich szukało w bazie innych newsów, które mają ten sam tag gdzieś na początku. Sortowane były od najnowszych. Jak ułożyć zapytanie żeby wybierało najbardziej trafne tematy pokrewne? Chyba nie ma sensu stosować wyszukiwania full text na tagach/tytule?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Jeśli tagi zapisujesz jako ciąg znaków to jesteś w niezbyt dogodnej sytuacji. Użytkownik może podać je w formie tekstu, ale Ty powinieneś rozbić je na pojedyncze tagi i zapisywać do osobnej tabeli (w sumie 2 tabel). Wówczas sprawa jest prostsza. Na chwilę obecną nie widzę lepszego rozwiązania niż wyciągnięcie pierwszego tagu i zrobienie LIKE.
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Zgadzam się z @up - to w ogóle nie powinno być w ten sposób zrobione, że masz tagi w jednym polu po przecinkach. Dużo lepsze i wydajniejsze okazuje się utworzoenie osobnej tabelki tagów oraz tabeli wiązań - tak zwana relacja "n do n". Wtedy również możesz łatwo i sprytnie wygenerować chmurki tagów - co w twoim aktualnym kodzie jest nieco cięższe.

Moja propozycja - przerób to - zrób te dwie tabelki - tagi i powiązania. Przeleć całą bazę i powrzucaj odpowiednio tagi. Następnie zaktualizuj swój kod tak by przy dodawaniu newsa tworzył odpowiednie rekordy w tych tabelkach (bez duplikowania tagów).

Wyszukiwanie po czymś takim jest proste i daje zamierzone rezultaty.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
thek
post
Post #4





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 proponuję tylko rozszerzenie tego co już ma. Niech zostawi to osobne pole z przecinkai, ale doda też tabelę z połączeniami n-n o której tu było wspomniane. Czemu? "Zobacz też" zrobi za chmurę tagów, ale pole z przecinkami można ująć w full-text searcha razem z treścią i tytułem oraz używać do wyszukiwań pełnotekstowych.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
deha21
post
Post #5





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

Ostrzeżenie: (0%)
-----


Pytanie czy full-text nie obciąży za bardzo bazy? Słyszałem że jest dosyć zasobożerne.


--------------------
Go to the top of the page
+Quote Post

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: 19.08.2025 - 04:12