Symfony и Zend Lucene подсветка - PullRequest
       322

Symfony и Zend Lucene подсветка

1 голос
/ 18 апреля 2011

Я использую Symfony 1.4 и использую поиск Zend Lucene, как в Jobbet И мне нужно сделать подсветку результатов поиска, я прочитал это , но я не понимаю, как это сделать в моем случае с Symfony (

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

Что такое $ sourceHTML? И это все делает только один ряд?

обн .:

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

Это работает в моей модели, но как это реализовать на мой взгляд?

Ответы [ 2 ]

2 голосов
/ 11 мая 2012

Вам необходимо сохранить этот выделенный 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}}
2 голосов
/ 01 июня 2011

У меня нет сейчас, если это правильно, но это работа :) Просто на виду:

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

В моем случае, например:

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