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