File Search
21 отговора
534 прегледа
File Search
Здравейте,
кажете ми оптимален начин за търсене на файл, при положение, че
файловете са в неограничено количество разрастващо се непрекъснато и юзерите са много.
Има ли някой подобен пример, идея, да е виждал някъде нещо такова ?
кажете ми оптимален начин за търсене на файл, при положение, че
файловете са в неограничено количество разрастващо се непрекъснато и юзерите са много.
Има ли някой подобен пример, идея, да е виждал някъде нещо такова ?
Re: File Search
търсене къде, в какво, защо ?
-----------------------
гърбавия - ковчег ще го изправи
-----------------------
гърбавия - ковчег ще го изправи
Re: File Search
мисля, че въпроса ми е ясен...
в КОЕТО Е ПО-УДОБНО, ПО-БЪРЗО и ПО-НАДЕЖДНО :)
База данни, директориите на сървъра, ФТП команди, обикновен сърч с командите за директории на РНР - няма значение, важното е да е стабилно и да е мулти-юзерно ориентирано, тоест като търсят едновременно 20-30 души, да няма крах
в КОЕТО Е ПО-УДОБНО, ПО-БЪРЗО и ПО-НАДЕЖДНО :)
База данни, директориите на сървъра, ФТП команди, обикновен сърч с командите за директории на РНР - няма значение, важното е да е стабилно и да е мулти-юзерно ориентирано, тоест като търсят едновременно 20-30 души, да няма крах
Re: File Search
Опитах да записвам всички файлове с големината и пътя до тях в база данни, така търсенето в последствие ще е най -удобно, но незнам как да запиша примерно 1 000 000 файла без това да ми отнеме 1 ден циклене
Искам да подчертая, че ЪПЛОАД няма да се прави чрез РНР, което допълнително ме затруднява ! иначе е би било лесно при самият ъплоад да записва файла в база данни примерно
Някакви идеи ?
Искам да подчертая, че ЪПЛОАД няма да се прави чрез РНР, което допълнително ме затруднява ! иначе е би било лесно при самият ъплоад да записва файла в база данни примерно
Някакви идеи ?
Re: File Search
Не, въпрса ти не е ясен!
1. Как ще са групирани файловете?
2. Въобще ще има ли някакво групиране или всички и вякакви файлове ще се съхраняват на едно място?
3. Къде ще се съхравяват файловете - в база данни или на файловата ситема на сървъра?
4. Къде ще става търсенето - в имената на файловете или в тяхното съдържание?
5. За какви файлове става въпрос - текстови, музика, филми?
6. От начина на подрежданено на файловете в резултатите от търсенето, зависи с каква информация трябва да разполага приложението за всеки отделен файл, а от тук - и по какъв начин ще се осигурява тази информация.
Ако потребителите ще са 20-30 души въобще не го мисли. Виж, ако имаш няколко милиона протребители, това вече е друга тема.
1. Как ще са групирани файловете?
2. Въобще ще има ли някакво групиране или всички и вякакви файлове ще се съхраняват на едно място?
3. Къде ще се съхравяват файловете - в база данни или на файловата ситема на сървъра?
4. Къде ще става търсенето - в имената на файловете или в тяхното съдържание?
5. За какви файлове става въпрос - текстови, музика, филми?
6. От начина на подрежданено на файловете в резултатите от търсенето, зависи с каква информация трябва да разполага приложението за всеки отделен файл, а от тук - и по какъв начин ще се осигурява тази информация.
Ако потребителите ще са 20-30 души въобще не го мисли. Виж, ако имаш няколко милиона протребители, това вече е друга тема.
Re: File Search
„Q„p„x„ѓ„}„‘„‡„„„u „}„u „}„Ђ„}„‰„u„„„p
„B„Њ„Ѓ„‚„Ђ„ѓ„p „}„y „ѓ„p„} „Ѓ„Ђ „ѓ„u„q„u „ѓ„y „B„y „x„p„t„p„r„p „ѓ„Њ„‹„y„„„u „„„u„x„y „r„Њ„Ѓ„‚„Ђ„ѓ„y „{„Ђ„y„„„Ђ „B„y„u „}„y „x„p„t„p„r„p„„„u „ѓ„u„s„p „~„p „}„u„~ !
„N„p„|„y „„„Ђ„r„p „Ѓ„y„„„p„} - „K„O„J „E „T„D„@„X„N„I„`„S „B„@„Q„I„@„N„S !
„p„x „p„{„Ђ „}„Ђ„w„u„‡ „t„p „B„y „Ђ„„„s„Ђ„r„Ђ„‚„‘ „Ѓ„Ђ„t„‚„Ђ„q„~„Ђ „~„p „r„Њ„Ѓ„‚„Ђ„ѓ„„„y „r„y, „„„Ђ „x„~„p„‰„y „Ѓ„‚„Ђ„q„|„u„}„p „}„y „u „‚„u„Љ„u„~, „r„Њ„Ѓ„‚„Ђ„ѓ„p „u „{„p„{„Њ„r „}„u„„„Ђ„t „t„p „Ѓ„Ђ„|„x„r„p„} !!!
„I„~„†„Ђ„‚„}„p„€„y„‘„„„p „{„Ђ„‘„„„Ђ „}„y „„„‚„‘„q„r„p „x„p „†„p„z„|„p „u - „s„Ђ„|„u„}„y„~„p, „y„}„u, „Ѓ„Њ„„, „‚„p„x„Љ„y„‚„u„~„y„u !
„@ „{„p„{ „t„p „s„Ђ „„„Њ„‚„ѓ„‘, „{„Њ„t„u „t„p „s„Ђ „x„p„Ѓ„y„ѓ„r„p„}, „Ђ„„ „{„Њ„t„u „t„p „s„Ђ „y„x„r„y„{„r„p„} - „„„Ђ„r„p „}„y „{„p„w„u„„„u „B„y„u, „p„{„Ђ „x„~„p„u„„„u, „}„Ђ„|„‘ !
„H„p „}„u„~ „u „q„u„x „x„~„p„‰„u„~„y„u „t„p„|„y „‹„u „Ѓ„Ђ„|„x„r„p„} ѓЄySQL, FTP-„†„…„~„{„€„y„y „y„|„y „{„p„{„r„Ђ„„„Ђ „y „t„p „q„y„|„Ђ, „r„Њ„Ѓ„‚„Ђ„ѓ„p „u „t„p „‚„p„q„Ђ„„„y „t„Ђ„q„‚„u, „t„p „}„u „Ѓ„Ђ„ѓ„Њ„r„u„„„r„p„„„u
„@„x „ѓ„Њ„x„t„p„t„Ђ„‡ „ѓ„{„‚„y„Ѓ„„ „{„Ђ„z„„„Ђ „x„p„Ѓ„y„ѓ„r„p „r„ѓ„y„‰„{„y „†„p„z„|„Ђ„r„u „r „q„p„x„p „t„p„~„~„y , „{„p„„„Ђ „Ѓ„‚„Ђ„r„u„‚„‘„r„p „t„p„|„y „r„u„‰„u „†„p„z„|„p „~„u „ѓ„Њ„‹„u„ѓ„„„r„…„r„p „r „q„p„x„p„„„p, „„„Ђ„r„p „t„Ђ„q„‚„u, „~„Ђ „p„{„Ђ „ѓ„u „~„p„Ѓ„‚„p„r„y „s„Ђ„|„‘„} „Њ„Ѓ„|„Ђ„p„t („{„Ђ„z„„„Ђ „~„u „ѓ„„„p„r„p „‰„‚„u„x „Q„N„Q „{„p„{„„„Ђ „ѓ„Ѓ„Ђ„}„u„~„p„‡) „~„p„Ѓ„‚„y„}„u„‚ 100 000 „†„p„z„|„p, „„„Ђ„r„p „Ђ„x„~„p„‰„p„r„p, „‰„u „„„‚„‘„q„r„p „t„p „x„p„t„p„} reguest time out-a „~„p 1 „‰„p„ѓ „y „t„p „s„Ђ „Ѓ„…„ѓ„~„p „t„p „€„y„{„|„y, „~„u „ѓ„}„‘„„„p„}, „‰„u „„„Ђ„r„p „u „~„p„z-„…„t„p„‰„~„y„‘ „r„p„‚„y„p„~„„, „x„p„„„Ђ„r„p „B„y „Ѓ„y„„„p„}
„I„x„r„y„~„‘„r„p„} „ѓ„u „p„{„Ђ „r„y „ѓ„u „ѓ„„„‚„…„r„p„} „|„u„{„Ђ „‚„p„x„t„‚„p„x„~„u„~, „~„u „u „x„p„‚„p„t„y „r„p„ѓ
„A„|„p„s„Ђ„t„p„‚„‘ „B„y „Ѓ„‚„u„t„r„p„‚„y„„„u„|„~„Ђ !
„B„Њ„Ѓ„‚„Ђ„ѓ„p „}„y „ѓ„p„} „Ѓ„Ђ „ѓ„u„q„u „ѓ„y „B„y „x„p„t„p„r„p „ѓ„Њ„‹„y„„„u „„„u„x„y „r„Њ„Ѓ„‚„Ђ„ѓ„y „{„Ђ„y„„„Ђ „B„y„u „}„y „x„p„t„p„r„p„„„u „ѓ„u„s„p „~„p „}„u„~ !
„N„p„|„y „„„Ђ„r„p „Ѓ„y„„„p„} - „K„O„J „E „T„D„@„X„N„I„`„S „B„@„Q„I„@„N„S !
„p„x „p„{„Ђ „}„Ђ„w„u„‡ „t„p „B„y „Ђ„„„s„Ђ„r„Ђ„‚„‘ „Ѓ„Ђ„t„‚„Ђ„q„~„Ђ „~„p „r„Њ„Ѓ„‚„Ђ„ѓ„„„y „r„y, „„„Ђ „x„~„p„‰„y „Ѓ„‚„Ђ„q„|„u„}„p „}„y „u „‚„u„Љ„u„~, „r„Њ„Ѓ„‚„Ђ„ѓ„p „u „{„p„{„Њ„r „}„u„„„Ђ„t „t„p „Ѓ„Ђ„|„x„r„p„} !!!
„I„~„†„Ђ„‚„}„p„€„y„‘„„„p „{„Ђ„‘„„„Ђ „}„y „„„‚„‘„q„r„p „x„p „†„p„z„|„p „u - „s„Ђ„|„u„}„y„~„p, „y„}„u, „Ѓ„Њ„„, „‚„p„x„Љ„y„‚„u„~„y„u !
„@ „{„p„{ „t„p „s„Ђ „„„Њ„‚„ѓ„‘, „{„Њ„t„u „t„p „s„Ђ „x„p„Ѓ„y„ѓ„r„p„}, „Ђ„„ „{„Њ„t„u „t„p „s„Ђ „y„x„r„y„{„r„p„} - „„„Ђ„r„p „}„y „{„p„w„u„„„u „B„y„u, „p„{„Ђ „x„~„p„u„„„u, „}„Ђ„|„‘ !
„H„p „}„u„~ „u „q„u„x „x„~„p„‰„u„~„y„u „t„p„|„y „‹„u „Ѓ„Ђ„|„x„r„p„} ѓЄySQL, FTP-„†„…„~„{„€„y„y „y„|„y „{„p„{„r„Ђ„„„Ђ „y „t„p „q„y„|„Ђ, „r„Њ„Ѓ„‚„Ђ„ѓ„p „u „t„p „‚„p„q„Ђ„„„y „t„Ђ„q„‚„u, „t„p „}„u „Ѓ„Ђ„ѓ„Њ„r„u„„„r„p„„„u
„@„x „ѓ„Њ„x„t„p„t„Ђ„‡ „ѓ„{„‚„y„Ѓ„„ „{„Ђ„z„„„Ђ „x„p„Ѓ„y„ѓ„r„p „r„ѓ„y„‰„{„y „†„p„z„|„Ђ„r„u „r „q„p„x„p „t„p„~„~„y , „{„p„„„Ђ „Ѓ„‚„Ђ„r„u„‚„‘„r„p „t„p„|„y „r„u„‰„u „†„p„z„|„p „~„u „ѓ„Њ„‹„u„ѓ„„„r„…„r„p „r „q„p„x„p„„„p, „„„Ђ„r„p „t„Ђ„q„‚„u, „~„Ђ „p„{„Ђ „ѓ„u „~„p„Ѓ„‚„p„r„y „s„Ђ„|„‘„} „Њ„Ѓ„|„Ђ„p„t („{„Ђ„z„„„Ђ „~„u „ѓ„„„p„r„p „‰„‚„u„x „Q„N„Q „{„p„{„„„Ђ „ѓ„Ѓ„Ђ„}„u„~„p„‡) „~„p„Ѓ„‚„y„}„u„‚ 100 000 „†„p„z„|„p, „„„Ђ„r„p „Ђ„x„~„p„‰„p„r„p, „‰„u „„„‚„‘„q„r„p „t„p „x„p„t„p„} reguest time out-a „~„p 1 „‰„p„ѓ „y „t„p „s„Ђ „Ѓ„…„ѓ„~„p „t„p „€„y„{„|„y, „~„u „ѓ„}„‘„„„p„}, „‰„u „„„Ђ„r„p „u „~„p„z-„…„t„p„‰„~„y„‘ „r„p„‚„y„p„~„„, „x„p„„„Ђ„r„p „B„y „Ѓ„y„„„p„}
„I„x„r„y„~„‘„r„p„} „ѓ„u „p„{„Ђ „r„y „ѓ„u „ѓ„„„‚„…„r„p„} „|„u„{„Ђ „‚„p„x„t„‚„p„x„~„u„~, „~„u „u „x„p„‚„p„t„y „r„p„ѓ
„A„|„p„s„Ђ„t„p„‚„‘ „B„y „Ѓ„‚„u„t„r„p„‚„y„„„u„|„~„Ђ !
Re: File Search
Отговори на твоите въпроси !
1. Как ще са групирани файловете? - в база данни ще са записани всички, имената им, пътя до тях, разширението, големината, датата на създаване
2. Въобще ще има ли някакво групиране или всички и вякакви файлове ще се съхраняват на едно място? - критериите за търсене ще определят куерито което ще дава резултата !
3. Къде ще се съхравяват файловете - в база данни или на файловата ситема на сървъра? - база данни !
4. Къде ще става търсенето - в имената на файловете или в тяхното съдържание? - имената на файловете само !
5. За какви файлове става въпрос - текстови, музика, филми? - да, разширението също е критерии за търсене !
6. От начина на подрежданено на файловете в резултатите от търсенето, зависи с каква информация трябва да разполага приложението за всеки отделен файл, а от тук - и по какъв начин ще се осигурява тази информация. - Име, път, големина, разширение, дата...
Ако потребителите ще са 20-30 души въобще не го мисли. Виж, ако имаш няколко милиона протребители, това вече е друга тема. -
първоначално смятах да използвам функциите на РНР за работа с директории и с тях да търся файла (по име ) като преровям директориите, но реших, че няма да е удачен вариант при повече потребители особено
1. Как ще са групирани файловете? - в база данни ще са записани всички, имената им, пътя до тях, разширението, големината, датата на създаване
2. Въобще ще има ли някакво групиране или всички и вякакви файлове ще се съхраняват на едно място? - критериите за търсене ще определят куерито което ще дава резултата !
3. Къде ще се съхравяват файловете - в база данни или на файловата ситема на сървъра? - база данни !
4. Къде ще става търсенето - в имената на файловете или в тяхното съдържание? - имената на файловете само !
5. За какви файлове става въпрос - текстови, музика, филми? - да, разширението също е критерии за търсене !
6. От начина на подрежданено на файловете в резултатите от търсенето, зависи с каква информация трябва да разполага приложението за всеки отделен файл, а от тук - и по какъв начин ще се осигурява тази информация. - Име, път, големина, разширение, дата...
Ако потребителите ще са 20-30 души въобще не го мисли. Виж, ако имаш няколко милиона протребители, това вече е друга тема. -
първоначално смятах да използвам функциите на РНР за работа с директории и с тях да търся файла (по име ) като преровям директориите, но реших, че няма да е удачен вариант при повече потребители особено
Re: File Search
Една поправка, файловете ще се съхраняват на файловият сървър, информацията за тях ще е в база данни само, и там ще се прави самото търсене
- мисля че така е най удачно
- мисля че така е най удачно
Re: File Search
До колкото знам, търсенето по файловата структура е бавно. Аз също бих записвал информацията за файловете в базата данни, вкл път към файла. Направи си иднекси на колоните по които ще се търси най-често. Така MySQL-a ще обработва заявките по-бързо.
Re: File Search
Дотук добре, ще ползвам индексиране, това ясно... само, че
как да игнорирам времето което РНР ще отдели за проверка на вече съществуващите файлове ?
това незнам как да постигна !
тоест искам да направя така, че не всеки път да ровя из дървовидната структура на файловият сървър за да записвам новите файлове които са се появили, сещаш ли се за алтернативни варианти ?
пак ще повторя, че Ъплоад-а не се прави чрез РНР-то (сайта)
как да игнорирам времето което РНР ще отдели за проверка на вече съществуващите файлове ?
това незнам как да постигна !
тоест искам да направя така, че не всеки път да ровя из дървовидната структура на файловият сървър за да записвам новите файлове които са се появили, сещаш ли се за алтернативни варианти ?
пак ще повторя, че Ъплоад-а не се прави чрез РНР-то (сайта)
Re: File Search
пак ще повторя, че Ъплоад-а не се прави чрез РНР-то (сайта)
Това го бях пропуснал.
1. Направи си един cronjob който да се стартира на определено време - през един час, примерно. Той ще обикаля файловата структура и ще събира информацията за файловете.
2. Сега трябва да се определи кои са новите файлове.
2.1. Ако с filemtime взимаш времето когато файла е качен на сървъра, ще си направиш списък със файловете от последния час и информацията само за тези файлове ще отиде в база данни.
2.2. Да приемем, че колоната в която записваш имената на файловете в таблицата в базата данни е unique
file_name varchar(255) unique
В този случай, cronjob-a ще се опита да вкара всички файлове за които е взел инфо от файловата структура, но за вече записаните няма да успее. Не трябва да имаш die(mysql_error()) след mysql_query(). Но това е много дървен начин и заема ресурси, а ти се опитваше да избягаш от пренатоварването.
Това го бях пропуснал.
1. Направи си един cronjob който да се стартира на определено време - през един час, примерно. Той ще обикаля файловата структура и ще събира информацията за файловете.
2. Сега трябва да се определи кои са новите файлове.
2.1. Ако с filemtime взимаш времето когато файла е качен на сървъра, ще си направиш списък със файловете от последния час и информацията само за тези файлове ще отиде в база данни.
2.2. Да приемем, че колоната в която записваш имената на файловете в таблицата в базата данни е unique
file_name varchar(255) unique
В този случай, cronjob-a ще се опита да вкара всички файлове за които е взел инфо от файловата структура, но за вече записаните няма да успее. Не трябва да имаш die(mysql_error()) след mysql_query(). Но това е много дървен начин и заема ресурси, а ти се опитваше да избягаш от пренатоварването.
Re: File Search
Ще ти кажа как точно съм го направил:
създал съм функция която листва всички файлове, ровейки се из всички директории и под-директории
За вески отделен файл се обръщам към базата данни и сравнявам дали ще ми върне резултат, тоест ред, ако резултата е нула изпълнявам второ куери което е записа всъщност, по този начин аз записвам реално само файловете несъществуващои в базата, всичко работи ОК, с изключение на това, че капацитета за 30 сек време е около 5 000 файла
Проблема ми е, че преровям цялата структура при всяко търсене за нов файл,
точно това искам да променя , но незнам как, все още :)
Благодаря ти за отговорите
създал съм функция която листва всички файлове, ровейки се из всички директории и под-директории
За вески отделен файл се обръщам към базата данни и сравнявам дали ще ми върне резултат, тоест ред, ако резултата е нула изпълнявам второ куери което е записа всъщност, по този начин аз записвам реално само файловете несъществуващои в базата, всичко работи ОК, с изключение на това, че капацитета за 30 сек време е около 5 000 файла
Проблема ми е, че преровям цялата структура при всяко търсене за нов файл,
точно това искам да променя , но незнам как, все още :)
Благодаря ти за отговорите
Re: File Search
абе... няма ли няква команда на линух дет листва файлове от една директория и надолу създадени или променени след определена дата ?
да се пусне с ехес и след това да се парсне резултата, мисля, че така ще е по-оптимално
-----------------------
гърбавия - ковчег ще го изправи
да се пусне с ехес и след това да се парсне резултата, мисля, че така ще е по-оптимално
-----------------------
гърбавия - ковчег ще го изправи
Re: File Search
Дойде ми идея новите файлове да се ъплоадват в отделна директория, и РНР да търси само там и да ги записва в базата, като едновременно ги мести в различни директории в зависимост от разширението им, но не смятам, че това е най-доброто което може да направя, все пак спестява време
Re: File Search
ти преравяй базата за това което имаш, а преравяне и ъпдейт прави на по няколко часа.
-----------------------
гърбавия - ковчег ще го изправи
-----------------------
гърбавия - ковчег ще го изправи
Re: File Search
мисля го и това, някой може ли да ми каже как под ЛИНУКС да листа цялата файлова структура и да я запиша във файл ?
може би ще е най удачният вариант
след което с РНР да прочета и да отсея информацията, записвайки файловете в база данни
може би ще е най удачният вариант
след което с РНР да прочета и да отсея информацията, записвайки файловете в база данни
2 идеи
1. Ако структурата на директориите не е важна, направи си директории за годините, поддиректории за месеците и техни поддиректории за дните. Ъплоадвай на правилното място, така ще проверяваш новото само за деня
2. Недей да проверяваш има ли го записа в базата или го няма, а направи полето за име (плюс пътечка разбира се) UNIQUE и вкарвай файловете с INSERT IGNORE.
priatelite.net - Твоите приятели!
2. Недей да проверяваш има ли го записа в базата или го няма, а направи полето за име (плюс пътечка разбира се) UNIQUE и вкарвай файловете с INSERT IGNORE.
priatelite.net - Твоите приятели!
Re: File Search
ls -ARTckl
може и да стане
-----------------------
гърбавия - ковчег ще го изправи
може и да стане
-----------------------
гърбавия - ковчег ще го изправи
Re: File Search
В отговор на:
абе... няма ли няква команда на линух дет листва файлове от една директория и надолу създадени или променени след определена дата ?
има ;-)) find . --ctime
също така ако се знае на каква машина работи има програма казва се locate, която прави сички тези неща сама!!
Re: File Search
а тъй... точно това имах предвид :)
-----------------------
гърбавия - ковчег ще го изправи
-----------------------
гърбавия - ковчег ще го изправи