Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
С другой стороны, разработка новой поисковой машины представлялась занятием весьма расточительным, особенно при наличии отлаженного и весьма пристойно работающего поисковика. Параллельное же внесение изменений в поисковые и ранжирующие алгоритмы двух параллельных систем мы сразу отвергли, так как это повлекло бы за собой фактически удвоение объема работ. Именно поэтому и было принято решение абстрагировать представление индекса от поисковых алгоритмов, но так, чтобы не нанести сокрушительный удар по эффективности системы в целом.
COM и UNIX? А почему бы и нет!
Для решения поставленной задачи была выбрана парадигма COM. Конечно, не сама Component Object Model (апологеты UNIX, мы солидарны с вами – не плюйтесь, читайте дальше) – ведь наша система ориентирована не только и не столько на Microsoft Windows, сколько на Linux и FreeBSD, а некоторое подмножество этой парадигмы, включающее декларацию классов с абстрактными методами и подсчет ссылок для автоматического освобождения памяти. Тем более что именно эта парадигма используется в наших разработках для подключения различных расширений – модулей языковой поддержки, фильтров специализированных форматов файлов.
Прежде всего предстояло по лицензионным соображениям отвязать систему от единственного применяемого ранее менеджера БД – BerkeleyDB, использовать который в коммерческих разработках не представляется возможным для небольшой украинской компании. Поэтому мы реализовали свой собственный альтернативный менеджер БД с использованием libgist, которая распространяется абсолютно бесплатно. По ходу разработки, правда, сложилось впечатление, что дешевле и быстрее было бы разработать нечто подобное «с нуля», так как ошибки в libgist всплывали достаточно долго, однако компонент, поддерживающий b-tree, был изготовлен и упакован в разработанный обобщенный интерфейс. Скажем сразу, что все программные интерфейсы модулей расширения, в том числе и фильтров форматов, доступны по запросу любому зарегистрированному пользователю наших продуктов, в том числе и распространяемых бесплатно.
Индекс здесь, индекс там...
После этого мы перешли собственно к индексу. Для начала были выделены основные примитивы, которые могут понадобиться при разработке приложений, и сформулированы их прототипы:
n поместить в индекс поисковый образ документа;