Ответы пользователя по тегу Symfony
  • Каким образом организовать поиск по сайту на Symfony?

    s0lar
    @s0lar
    Организовывать поиск внутри приложения, по имеющимся сущностям - это не реально, мне кажется. По каким полям искать? Как ранжировать результаты?

    Лучше пойти путем "краулеров" от поисковых систем, которые сканируют и собирают контент, обходя сайт как поисковый робот. Все результаты можно уместить в 1 таблице вида:
    link, title, content, last_update

    У Симфони есть мощный инструмент commands, с помощью которого можно создавать консольные приложения.
    Я бы пошел путем написания "краулера" которого можно запускать по крону. Краулер будет сканировать ваш же сайт и индексировать контент. У Симфони так же есть DomCrawler компонент, которым легко выбрать все ссылки на странице, а так же собрать текстовый контент. Текстовый контент можно помещать в специальный тег (например ) или просто классом, чтобы не парсить все подряд.
    Алгоритм примерно такой:
    1. парсим "/"
    2. сохраняем контент из тега
    3. сохраняем все новые ссылки (исключая внешние ссылки и pdf, doc, etc) в табличке.
    4. парсим следующую запись из нашей таблицы.

    Таким образом обходим весь сайт по крону.

    P.S.
    Я бы еще поискал готовые бандлы, наверняка они есть.
    Ответ написан
    1 комментарий