Разработка системы поиска на ZendFramework
Тендер на разработку системы поиска на ZendFramework.
Предлагайте сразу стоимость и сроки.
Система поиска и агрегирования тематического материала:
Требования к системе:
1. Система должна обеспечивать непосредственно поиск по всем ресурсам сайта.
2. В Системе должна быть предусмотрена возможность поиска в тематических разделах сайта отдельно от основного поиска.
3. Должна быть возможность публикации блока тематических ссылок для материалов (новости, публикации и т.д.). (в задачу Поиска входит анализ и подбор материалов, наиболее близких по релевантности для каждой публикации)
4. Теги - тематические слова-синонимы для заданных групп.
Предлагаемый алгоритм формирования данных поиска:
Во время публикации материала происходит переиндексация индексной базы поиска, при этом производится выделение и запись базы слов для данного материала, которые будут использоваться для подбора тематического материала. Одновременно добавляется материал в базу поиска конкретного раздела. Одновременно с этим мы обращаемся к базе данных к таблице тегов и выбираем список подходящих к поиску тегов выводим данный список всплывающим окном редактору, в данном окне располагается список предложенных подходящих тегов, строка ввода новых тегов а также список найденных в тексте существительных присутствующих в необходимой плотности, редактор может добавить из найденных слов/добавить новые/удалить/ недостающие по смыслу теги и сохранить результат в базу тегов и в индексный файл. Кроме того теги будут использованы в качестве метатега keywords.
Структура таблиц для хранения тегов:
CREATE TABLE `tags_tags`
(
`id` int (10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Уникальный идентификатор',
`tag` varchar (20) DEFAULT NULL COMMENT 'Значение тега',
`type` int (10) UNSIGNED DEFAULT NULL COMMENT 'Тип ресурса',
`descr` varchar (255) DEFAULT NULL COMMENT 'Описание (не обязательный)',
`url` varchar (100) DEFAULT NULL COMMENT 'ссылка (не обязательный)',
`alias_id` int (10) UNSIGNED DEFAULT '0' COMMENT 'Идентификатор алиаса',
`count_terms` int (10) UNSIGNED DEFAULT '0' COMMENT 'Количество данных слов',
PRIMARY KEY (`id`)
)
ENGINE=MYISAM
DEFAULT charSET=cp1251 COMMENT 'Таблица массив тегов';
CREATE TABLE `types` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Уникальный идентификатор типа ресурса',
`name` varchar(20) DEFAULT NULL COMMENT 'наименование',
`descr` varchar(200) DEFAULT NULL COMMENT 'Описание',
PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT charSET=cp1251 COMMENT='таблицу-справочник типов материалов(ресурсов)';
Также должен быть предусмотрен механизм обновления индексной базы.
Обязательное требование: документация.
Для поиска предлагаю использовать Zend_Search_Lucene.