Слава Шевцов

Слава Шевцов
Рейтинг
370
Регистрация
23.07.2005
Shivana:
А можно привести здесь ссылочку, где это можно почитать? Или текст закона, дюже интересно, где это такое написано.

Подробная статья с описанием реальных прецедентов: http://www.intellectpro.ru/stat/index.php?view_id=86

Лутчер:
создание поисковика - хорошая тема, но то что опубликовано в статье - элементарные вещи

Ни одной ногой не элементарные. Например, CRC32 ускоряет поиск но появляется неоднозначность обратного преобразования. Например, убирание имён я бы делать не стал. Например, Гугл не вставляет пробелы вместо знаков препинания. Они их сразу вырезает. Поэтому точка после предложения от следующего преложения должна быть отделена пробелом. Это удобнее при реализации. Совсем не затронута тема добавления новых документов в обратный индекс без остановки поискового движка. А это достаточно серьёзная проблема.

Если покопаетесь по форуму, то увидите, что для многих и многих написанное в статье совсем не элементарно: строят поиск на основе MySQL, Oracle и прочих. Хорошая статья.

Andreyka:
Хочу посмотреть как ФСБ будет изымать сервер который в США :)
А заверить у нотариуса может любой, например - адвокат обвиняемого. Ку?

В какой момент? После того, как органы разобрались в том, что реально есть на сайте?

Undervud:
особенно слово бывший меня радует:)

Они в уходе совсем не виноваты ;)

Интересно, а раззиповка индексных файлов из памяти работает быстрее, чем чтение с диска?

sandys:
Тут я делаю проход по прямому индексу не для одного уникального слова а для определенного интервала - так меньше проходов требуется.

Я так же делаю. ;)

sandys:
Тут я делаю не так. Если для каждого слова использовать файл то время доступа к списку вхождений увеличивается из-за дополнительного поиска по файловой системе, не говоря уже про то что миллионы файлов в каталоге это многовато. Я весь обратный индекс храню в одном файле, а списки вхождения для слов нахожу по смещению в нем.
Но это мелочи - проблема не здесь.

Миллионы файлов это многовато. Но если использовать стемку, то их количество сильно уменьшается. Тысяч до ста, а с этим линуксы уже справляются. Можно ещё посмотреть в сторону BerkeleyDb - я пока не тестировал на необходимость беркли, но должно быть лучш. Если Вы храните индекс в одном файле, то там есть маленькая проблема. Добавление/удаление/изменение документа приводит к значительным операциям с этим файлом. Даже если он весь хранится в памяти, то сдвиги сотен мегабайт данных в памяти не сказка. Если кусочек оказывается на диске, то вообще получаются ужасы. С кучей маленьких файлов таких проблем нет.

sandys:
Проблема в том что индекс "имен файлов" в оперативной памяти не умещается.

Самый простой способ в Вашем случае хранить файл на диске, а смещения и часть индекса держать в памяти (кешь).

Undervud:
Пришло письмо от MIRhosting.com что мол аккаунты перенесены туда, но там видать пионеры еще хуже нежели были в valuex.ru😒

В Mirhosting хороший сервис. Как бывший клиент говорю.

Andreyka:
Вопрос - какой из нотариусов разориться? Судья говорит - а покажите мне сейчас что там на этом сайте, а то непонятно.
Смотрим - информации там уже нет (удалено владельцем форума).

Ку?

Какое Ку? Откуда возьмётся второй нотариус? Он появится только после предъявления обвинения. Даже если к тому времени ФСБ не изымет сервер, они проведут все предварительные мероприятия по фиксированию нарушения прежде чем владелец форума узнает о предъявленно обвинении и сможет пойти к нотариусу.

megahoster.net:
Какой еще keyweb.ru ?? Может keyweb.de ?

Изучите свой рынок, пожалуйста.

sandys:
Хотелось бы чтобы вся эта структура хранилась в памяти для быстрого определения смещения в файле по заданному ключу.

Но как это можно хранить в памяти если id несколько десятков миллионов (хотябы) - 20*50 000 000 = 1Гб

Или в таких ситуациях индекс раниться частично на диске ?

Разбиваете обратный индекс по словам. Для каждого слова свой файл с обратным индексом. Файлы хранятся на диске. Если требуется большая производительность и время чтения с диска критично, то кидаете часто используемые файлы в memcached.

Соответственно, при построении обратного индекса Вы берёте базу документов и создаёте прямой индекс, сбрасывая его постепенно на диск (незачем ему хранится в памяти целиком). Затем для каждого уникального слова по очереди проходитесь по прямому индексу, составляете обратный индекс для этого слова, файл сбрасываете на диск. Таким образом, Вы можете индексировать базы любого размера. Правда количество проходов по прямому индексу получается равно количеству уникальных слов. Но это можно оптимизировать 🙄 Самое узкое место - дисковая подсистема. Это уже лечится только добавлением памяти.

Всего: 33369