在Symfony中创建静态内容搜索工具的最佳方法是什么?

在Symfony中创建静态内容搜索工具的最佳方法是什么?,symfony,Symfony,我已经用Symfony 2.6建立了一个静态网站,它已经被翻译成8种不同的语言,包括多种形式 现在它需要一个搜索工具,实现这一点的最佳方法是什么?可以通过以下方式获得搜索工具: 特殊数据库请求,在mysql中,从article.body所在的文章中选择*,如“%searched\u query%” 可以使用以下工具实现全文搜索: 但在这两种情况下,您都应该将内容保存在数据库或其他文件中 在你的情况下,作为解决办法,我建议爬网你自己的网站,并从你找到搜索文本的网站返回链接 因此,您将拥有与搜索文本

我已经用Symfony 2.6建立了一个静态网站,它已经被翻译成8种不同的语言,包括多种形式


现在它需要一个搜索工具,实现这一点的最佳方法是什么?

可以通过以下方式获得搜索工具:

特殊数据库请求,在mysql中,从article.body所在的文章中选择*,如“%searched\u query%” 可以使用以下工具实现全文搜索:

但在这两种情况下,您都应该将内容保存在数据库或其他文件中

在你的情况下,作为解决办法,我建议爬网你自己的网站,并从你找到搜索文本的网站返回链接


因此,您将拥有与搜索文本匹配的URL列表。

什么是静态内容?简单的html页面?如果网站是静态的,如何使用表单?您是否在没有PHP的情况下处理表单?@Alexandroolaru是的twig中的简单htmltemplates@A.L网站上有一些动态功能,但大部分是静态模板,使用DOMCrawler对内容进行索引,这也是我的解决方案,谢谢Alexandru。在我的搜索中,我确实遇到了以下jQuery插件,我知道它并不理想
use Symfony\Component\DomCrawler\Crawler;

class InternalCrawler {

    private $crawler;
    private $textToSearch;
    private $matchedUrls;

    public function __construct($textToSearch)
    {
        $this->textToSearch = $textToSearch;
    }

    protected function requestUrl($url)
    {
        //curl the url to crawl
        //...

        return $html;
    }

    protected function getUrlsToCrawl()
    {
        return array(
            'url-to-homepage',
            'url-to-an-article-page',
            ...
        );
    }

    protected function match($url, $html)
    {
        $this->crawler = new Crawler($html);
        $textExists = $this->crawler->filter("html:contains('{$this->textToSearch}')")->count();
        if ($textExists) {
            $this->matchedUrls[] = $url;
        }
    }

    public function getMatchedUrls()
    {
         foreach ($this->getUrlsToCrawl() as $url) {
             $html = $this->requestUrl($url);
             $this->match($url, $html);
         }

         return $this->matchedUrls;
    }
}