![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 5.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
dostało mi się zadanie napisania szukajki na stronie. Strona ma dość nietypową konstrukcję, bo jest w php, ale spora część tekstów stałych jest ciągnięta z xml i zwykłych plików txt,html. Wszystkie teksty do przeszukiwania są poza mysql, właśnie w tych plikach. Wszystko jest dość logicznie ułożone, pogrupowane w katalogach, ładnie nazwane itp. Taka baza danych z plików (sic!) ![]() I moje pytanie, czy ma sens napisanie wyszukiwarki takiej: - formularz - wpisanie szukanej frazy - php ładuje do tablicy odpowiednią zawartość plików - przeszukuję tablicę na szukaną frazę - wyświetlam wyniki na podstawie wyszukania w tablicy Czy coś takiego będzie wydajne? Ile tych plików może być, zanim się zamuli serwer. Leży to wszystko na jakimś zwyczajnym hostingu z tego co się orientuję, jakaś nazwa.pl czy coś w tym stylu. Z góry dzięki za odp. -------------------- Death and Decay >.<
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 23.12.2006 Skąd: Będzin / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat - php ładuje do tablicy odpowiednią zawartość plików No wydajne to to może nie być. Szczególnie jeśli na stronie będziesz mieć 100 osób, które w jednej chwili wyszukają jakąś frazę. Ile? Przetestuj... ![]() A najoptymalniej byłoby napisać program/skrypt CGI i stamtąd pobierać wyniki... ![]() Ten post edytował matty7 5.07.2012, 10:28:23 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 5.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie znam sie cgi
Tylko php. Jakaś inna podpowiedź w takim razie jak to zrobić? Strona nie jest jakaś super popularna, może z 1k-2k odwiedzin dziennie. -------------------- Death and Decay >.<
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz napisać prostego skryptu, który skopiuje te pliki do bazy? Struktura b. prosta:
id, file_path, contents 'contents' typu 'text'. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 202 Pomógł: 36 Dołączył: 10.06.2011 Skąd: Dokąd Ostrzeżenie: (0%) ![]() ![]() |
Ale po co duplikować treść?
Możesz sobie zrobić plik indeksu ze słowami-kluczami (np. w XML) o takiej np. strukturze:
I przy dodawaniu kolejnych plików zczytać zawartość i zaktualizować indeks. PHP ma niezłe narzędzia do obsługi XML, a przeszukiwanie po kolei plików w folderach też nie jest specjalnym wyzwaniem dla tego wspaniałego ![]() Ten post edytował Korab 8.07.2012, 21:51:05 |
|
|
![]() ![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 5.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wszystki za odpowiedzi, w sumie problem rozwiązany.
Okazało się że ma to tylko przeszukiwać same tytuły artykułów, więc max 300 tytułów jeśli się weźmie szukanie po całości, a zazwyczaj szukanie w około 30 w jednej kategorii (domyślne). Uznałem, że to nie zamuli serwera, użyłem wrzucania do tablicy i pętla foreach, i wyszukiwanie przez :
Ponoć mniej zasobożerne niż preg_match. Jak będą zadyszki na serwie to zrobię jakąś mini bazę z zapytaniami, tak jak piszecie ![]() Dzięki! P.S. Czy jak w jednym skrypcie tekstowym zrobię pętlę 1000 wyszukiwań to będzie to tak samo obciążające, jak 1000 użytkowników robiących 1 wyszukanie w tym samym czasie? Chciałbym jakoś przetestować wydajność i zamulenie serwera moim skryptem ![]() -------------------- Death and Decay >.<
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 79 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
No nie, bo każda wizyta usera to osobny request (trzeba za każdym razem pobrać całą stronę). Tak więc pętla z 1000 wyszukań będzie oczywiście dużo szybsza.
Ale czemu pytasz? Ten post edytował konrados 16.07.2012, 17:03:53 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:20 |