Witam. Na mojej stronie internetowej będzie można dodawać artykuły, i o ile wiem jak się zabrać za ich przechowywanie i samo ich dodawanie, to nie wiem, jak będzie można je wyszukiwać.
Artykuły będą przechowywane w bazie danych. Na stronie głównej powinna być wyszukiwarka, która nam odnajdzie artykuły z tej bazy. Tylko nie wiem jak to zrobić. Nie wiem na przykład, czy powinienem korzystać z tagów. Po pierwsze - jak je posegregować w bazie danych, po drugie - co jeśli jakiś użytkownik doda ze 100 tagów, tylko po to żeby jego artykuł pojawiał się wszędzie, po trzecie jak przekształcić zapytanie użytkownika, by sprawdzało tagi?
Np. jeśli ktoś w tagach doda “Linux”, a ktoś napisze “Instalacja Linuxa”, to słowo “Linux” różni się od “Linuxa”. Można by niby zrobić tak, że jeśli ciąg znaków w wyrazie będzie pasował z tagiem, to to zadziała. No ale niezupełnie, bo np. ktoś może wpisać “Car”, a jakieś artykuły w tagach będą miały “_Car_pet” i wraz z autami pokaże mu się masa dywanów.
Można by też przekształcić tytuł w tagi, tylko co jeśli tytuł będzie czymś typu “Dlaczego Mac’i nie nadają się do grania”, a artykuł będzie też opowiadał w dużej mierze o komputerach PC i o Windowsie? Wtedy, jeśli ktoś wpisze “Dlaczego lepiej grać na Windowsie” ten artykuł mu nie wyskoczy.
Wyszukiwarka będzie raczej nieodłączną częścią mojej strony. Chcę wszystko zrobić tak, bym później nie musiał się martwić zmianami w bazie danych, np. dodaniem pola na tagi czy czegoś innego, i przez to nie dodałem jeszcze opcji dodawania artykułów. Chcę by wszystko było przygotowane, i dopiero wtedy dodam opcję dodawania artykułów.
Przeszukiwałem internet, by znaleźć rozwiązanie. Jedyne co znalazłem, to jakieś poradniki jak dodać wyszukiwanie Google do strony, jak zrobić wyszukiwarkę internetową (a chcę by przeszukiwała tylko moją stronę) oraz gotowe skrypty - jeśli nie będzie wyjścia, to może kiedyś ich użyję, ale chciałbym to zrobić samemu.
Jak się więc za to zabrać? Jakie są rozwiązania powyższych problemów? Jak przechowywać tagi? Na czym wyszukiwanie w ogóle powinno się opierać?