1
Основной форум / Re: istock
« : Января 15, 2008, 04:58:41 am »
я не эксперт, но кое чего про базы могу сказать
сначала по поводу алгоритма - все данные в базах индексируются. что это значит - допустим у картинки есть 50 слов описания. из этих 50ти слов в результате какого-то алгоритма (их много разных) вычисляются числа. после этого данные заносятся в базу, причем заносятся они отсортированными, и занимают свое место в этом огромном массиве данных в зависимости от вычисленного числа. (упрощенно, но по сути так и есть). когда кто-то ищет картинку по ключевому слову, то это ключевое слово превращается в такой же числовой код и сравнивается с сохраненными цифрами. искать так гораздо быстрее (на несколько порядков) чем просто сравнивать текстовые данные.
если, к примеру, в результате поиска выводятся 100 картинок из 10 тысяч найденных то это будут первые 100 картинок в том отсортированном массиве данных, которые удовлетворяют критериям поиска.
чтобы изменить порядок (сделать рандомайз) нужно базу переиндексировать, то есть заново вычислить по какому-то алгоритму цифровой код для каждого ключевого слова. а это очень трудоемкий (для компьютера) процесс. например (из личного опыта так сказать) 100 Гб база на современном 4х ядерном процессоре может индексироваться с нуля больше суток. а на стоках хоть и стоят мощные системы, но и объемы данных там гораааздо больше.
поэтому полный-полный рандомайз практически невозможен, по крайней мере я так думаю. потому как фактически это потребует очень частой переиндексации всей базы, а это слишком ресурсоемко с технической точки зрения. хотя владельцы стоков люди не бедные и могут позволить себе прикупить еще серверов на пару-тройку сотен штук баксов, но это действие с их стороны сомнительно, так как не сулит им никакой выгоды
кроме того, там результаты поиска наверняка неоднократно кешируются, чтобы лишний раз базу не нагружать. то есть если вы сделали какой-то поиск, то его результаты на несколько часов будут сохранены где-то в отдельном месте, возможно на отдельном компьютере во временной базе и если кто-то вслед за вами будет делать точно такой же запрос, то ему будут выданы данные, которые были найдены до этого вами.
кстати говоря та задержка между заливкой фотки на сток и ее способностью находиться через поиск как раз и связана с тем, что фотка еще не проиндексировалась и/или не обновился кэш на серваках.
достаточно просто бестмач можно делать по количеству просмотров и покупок.
чуть сложнее - по рейтингу автора (по количеству загруженных/скачанных фоток).
кстати совет cнимать, грузить, постоянно, без перерывов, опять снимать, снова грузить, улучшать качество, и будете попадать в бестматч. чем больше картинок, тем больше шансов. чем больше качественных картинок, тем больше шансов, что покупатели будут к вам возвращаться. заставлет задуматься именно о подобной схеме.
а также можно сделать например поиск по релевантности - у стока есть большая статистика продаж, можно проанализировать фотографию и определить что искомое слово намного чаще продается если в картинке есть комбинация каких-то еще слов и выводить на первое место в поиске именно картинки с такой комбинацией. но я не думаю что это где-то реализовано, потому что сложно и преимущества от прочих сортировок неочевидны)
зы: мысли вслух, на истину не претендую)
зызы:
ну, просмотры говорят о том, что хотя бы в задницу карточка изначально не попала. :]
кстати говоря попадание в задницу - это может быть и не минус, так как по статистике последняя страница просматривается чаще чем, к примеру, 10-ая)
(ну это конечно в том случае когда нумерация идет наподобие 1..2..3........745..746)
сначала по поводу алгоритма - все данные в базах индексируются. что это значит - допустим у картинки есть 50 слов описания. из этих 50ти слов в результате какого-то алгоритма (их много разных) вычисляются числа. после этого данные заносятся в базу, причем заносятся они отсортированными, и занимают свое место в этом огромном массиве данных в зависимости от вычисленного числа. (упрощенно, но по сути так и есть). когда кто-то ищет картинку по ключевому слову, то это ключевое слово превращается в такой же числовой код и сравнивается с сохраненными цифрами. искать так гораздо быстрее (на несколько порядков) чем просто сравнивать текстовые данные.
если, к примеру, в результате поиска выводятся 100 картинок из 10 тысяч найденных то это будут первые 100 картинок в том отсортированном массиве данных, которые удовлетворяют критериям поиска.
чтобы изменить порядок (сделать рандомайз) нужно базу переиндексировать, то есть заново вычислить по какому-то алгоритму цифровой код для каждого ключевого слова. а это очень трудоемкий (для компьютера) процесс. например (из личного опыта так сказать) 100 Гб база на современном 4х ядерном процессоре может индексироваться с нуля больше суток. а на стоках хоть и стоят мощные системы, но и объемы данных там гораааздо больше.
поэтому полный-полный рандомайз практически невозможен, по крайней мере я так думаю. потому как фактически это потребует очень частой переиндексации всей базы, а это слишком ресурсоемко с технической точки зрения. хотя владельцы стоков люди не бедные и могут позволить себе прикупить еще серверов на пару-тройку сотен штук баксов, но это действие с их стороны сомнительно, так как не сулит им никакой выгоды
кроме того, там результаты поиска наверняка неоднократно кешируются, чтобы лишний раз базу не нагружать. то есть если вы сделали какой-то поиск, то его результаты на несколько часов будут сохранены где-то в отдельном месте, возможно на отдельном компьютере во временной базе и если кто-то вслед за вами будет делать точно такой же запрос, то ему будут выданы данные, которые были найдены до этого вами.
кстати говоря та задержка между заливкой фотки на сток и ее способностью находиться через поиск как раз и связана с тем, что фотка еще не проиндексировалась и/или не обновился кэш на серваках.
достаточно просто бестмач можно делать по количеству просмотров и покупок.
чуть сложнее - по рейтингу автора (по количеству загруженных/скачанных фоток).
кстати совет cнимать, грузить, постоянно, без перерывов, опять снимать, снова грузить, улучшать качество, и будете попадать в бестматч. чем больше картинок, тем больше шансов. чем больше качественных картинок, тем больше шансов, что покупатели будут к вам возвращаться. заставлет задуматься именно о подобной схеме.
а также можно сделать например поиск по релевантности - у стока есть большая статистика продаж, можно проанализировать фотографию и определить что искомое слово намного чаще продается если в картинке есть комбинация каких-то еще слов и выводить на первое место в поиске именно картинки с такой комбинацией. но я не думаю что это где-то реализовано, потому что сложно и преимущества от прочих сортировок неочевидны)
зы: мысли вслух, на истину не претендую)
зызы:
ну, просмотры говорят о том, что хотя бы в задницу карточка изначально не попала. :]
кстати говоря попадание в задницу - это может быть и не минус, так как по статистике последняя страница просматривается чаще чем, к примеру, 10-ая)
(ну это конечно в том случае когда нумерация идет наподобие 1..2..3........745..746)