我的网站搜索引擎完全按照我想要的方式运行,除了一个唠叨的问题:我希望能够显示所有搜索引擎显示的搜索主体类型,突出显示包含搜索的1到3个句子我的结果中的术语。
我的Googlefoo在这方面并不强大,所以我希望有人可以让我转向现有的解决方案。
答案 0 :(得分:2)
如果您不想将关键字突出显示为建议并希望剪切相关段落/内容,那么这就是我要做的事情:
$snippets = array();
foreach ($matches as $i => $match) {
$pos = strpos($match, $searchTerm);
$buffer = 30; // characters before and after the search term is found
// start index - 0 or 30 characters before instance of search term
$start = ($pos - $buffer >= 0) ? $pos - $buffer : 0;
// end index - 30 characters after instance of search term or the length of the match
$end = $start + strlen($searchTerm) + $buffer;
$end = ($end >= strlen($match)) ? strlen($match) : $end;
$snippets[$i] = substr($match, $start, $end);
}
答案 1 :(得分:0)
您的意思是搜索突出显示:
str_replace(
$searchTerm,
'<span class="searchHighlight">'.$searchTerm.'</span>',
$searchString);
您需要在纯文本上执行此操作,否则您可能遇到A List Apart文章Enhance Usability by Highlighting Search Terms中提到的一些并发症;
您可以尝试基于Javascript的方法,但基于PHP / HTML的方法更容易接受。