使用php获取类似搜索引擎的搜索正文片段

时间:2010-11-12 18:18:34

标签: php search search-engine

我的网站搜索引擎完全按照我想要的方式运行,除了一个唠叨的问题:我希望能够显示所有搜索引擎显示的搜索主体类型,突出显示包含搜索的1到3个句子我的结果中的术语。

我的Googlefoo在这方面并不强大,所以我希望有人可以让我转向现有的解决方案。

2 个答案:

答案 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的方法更容易接受。