Symfony和Zend Lucene强调

时间:2011-04-18 09:05:12

标签: zend-framework symfony1 symfony-1.4 zend-search-lucene lucene-highlighter

我使用symfony 1.4并使用Zend Lucene搜索,如 Jobbet 我需要将搜索结果突出显示,我读 this ,但我不会在symfony(

$ highlightedHTML = $ query-> highlightMatches ($sourceHTML);

什么是$ sourceHTML?这只是一排吗?

更新:

 $ highlightedHTML = $ query-> highlightMatches ($sourceHTML);

它适用于我的模型,但在我看来它是如何实现的?

2 个答案:

答案 0 :(得分:2)

我现在不,如果它是对的,但它是工作:) 只是在视野中:

$query = Zend_Search_Lucene_Search_QueryParser::parse($queryStr);
$highlightedHTML = $query->highlightMatches($sourceHTML);

以我为例:

echo $query->highlightMatches($ad->getCompany())

答案 1 :(得分:2)

您需要将此突出显示的HTML存储在模型中。或者创建一个可从视图访问的功能。例如:

<?php
class Model {
  private $content;

  public function getContent(){
    return $this->content;
  }

  public function getContentHighlighted(){
    // Search term, usually in $_GET or $_POST
    $term = $_GET['searchterm'];
    // Parse query
    $query = Zend_Search_Lucene_Search_QueryParser::parse($term);
    // Return highlighted
    return $query->highlightMatches($this->getContent());
  }

}
?>

在您的视图中(例如在这种情况下:Twig),您使用:

<h1>The content</h1>
{{model.getContentHighlighted}}