![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 9.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Chcialbym stworzyc system slow kluczowych w stylu np. youtube.com, pudelek.pl (moj faworyt:P) i wielu wielu innych sajtow - duzo sie tego porobilo. W skrocie chce takiej funkcjonalnosci, zeby artykuly mialy przypisywane recznie slowa kluczowe i aby potem na podstawie slow kluczowych wyszukiwac artykuly podobne, tworzyc indeksy wszystkich artykulow z przypisanym danym slowem etc.
Platforma to mysql. Jaka strukture bazy slow kluczowych wybrac? Czy do kazdego artykulu robic jedno pole tekstowe po prostu z oddzielonymi spacjami keywordami i stworzyc na tym polu indeks fulltext, czy tez raczej zrobic wielka baze relacji id|slowo|artykul, czyli np. dla artykulu o ID 15 rekordy: Kod id | slowo | artykul ---+-----------+--------- 11 | pieniądze | 66 12 | biznes | 66 13 | waluta | 66 14 | dulary | 66 Nieee wiem czy to nie powinno trafic do dzialu o mySQL, ale to nie jest tylko kwestia bazy - chodzi mi rowniez o to jak na platformie php potem w sposob wygodny i wydajny to obslugiwac. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 9.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie w stylu
przy obciazeniu kilkuset zapytan na minute przy bazie powiedzmy 20k rekordow zabije najpotezniejszy serwer. Tworzac na polu keywords indeks fulltext i szukajac potem po tym indeksie mozna to robic na przyslowiowym celeronie. Zapytania po indeksach zawsze beda wydajniejsze, funkcja LIKE musi przeczesac wszystkie rekordy. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie w stylu przy obciazeniu kilkuset zapytan na minute przy bazie powiedzmy 20k rekordow zabije najpotezniejszy serwer. Tworzac na polu keywords indeks fulltext i szukajac potem po tym indeksie mozna to robic na przyslowiowym celeronie. Zapytania po indeksach zawsze beda wydajniejsze, funkcja LIKE musi przeczesac wszystkie rekordy. Ok. Załóżmy, że masz książke telefoniczną. Wyszukujesz po imieniu, nazwisku, dziale czy stanowisku pracy. Chciałbyś, żeby użytkownik nie musiał wpisywać całej nazwy działu czy stanowiska tylko napisał np. dzial k a system odnajdzie mu wszystkie telefonu które pasują do tego wyrażenia, np. Dział Kadr, Dział Kontroli, Dział K... itd. Jak to zrobisz bez LIKE ? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 9.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ok. Załóżmy, że masz książke telefoniczną. Wyszukujesz po imieniu, nazwisku, dziale czy stanowisku pracy. Chciałbyś, żeby użytkownik nie musiał wpisywać całej nazwy działu czy stanowiska tylko napisał np. dzial k a system odnajdzie mu wszystkie telefonu które pasują do tego wyrażenia, np. Dział Kadr, Dział Kontroli, Dział K... itd. Jak to zrobisz bez LIKE ? Po pierwsze, to jest zupelnie inny problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po drugie, wyszukiwanie FULLTEXT w MySQL ma mozliwosc dopelnienia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Tylko ze nie wiem, czy w tym wypadku przewaga wydajnosciowa nad LIKE jest tak ogromna jak przy zwyklym "serczu". Ale zachecam do stosowania indeksow fulltext, moze oszczedzic wymiany sprzetu kiedy wszystko przestaje dzialac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:20 |