本文整理汇总了PHP中Zend_Search_Lucene_Search_Query::rewrite方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Search_Lucene_Search_Query::rewrite方法的具体用法?PHP Zend_Search_Lucene_Search_Query::rewrite怎么用?PHP Zend_Search_Lucene_Search_Query::rewrite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Search_Lucene_Search_Query
的用法示例。
在下文中一共展示了Zend_Search_Lucene_Search_Query::rewrite方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Constructor
*
* @param \Zend_Search_Lucene_Interface Lucene index instance
* @param \Zend_Search_Lucene_Search_Query $query Lucene query
* @param array $terms Original search terms
* @param boolean $highlight Highlight search terms in results
* @return void
*/
public function __construct(\Zend_Search_Lucene_Interface $index, \Zend_Search_Lucene_Search_Query $query, array $terms = array(), $highlight = false)
{
$this->_index = $index;
$this->_query = $query;
$this->_terms = $terms;
$this->_index->addReference();
// Run the Lucene search and register the results
foreach ($this->_index->find($this->_query) as $hit) {
$this->_hits[] = \Tollwerk\TwLucenesearch\Domain\Model\QueryHit::cast($hit);
}
// If search terms should be highlighted ...
if (count($this->_hits) && $highlight) {
$this->_highlight = array();
foreach ($this->_query->rewrite($this->_index)->getQueryTerms() as $term) {
if (!array_key_exists($term->field, $this->_highlight)) {
$this->_highlight[$term->field] = array($term->text);
} else {
$this->_highlight[$term->field][] = $term->text;
}
}
}
}
示例2: getQueryTerms
/**
* Return the search terms of a lucene search query within the context of the current index
*
* @param \Zend_Search_Lucene_Search_Query $query Lucene search query
* @return array Search terms
*/
public function getQueryTerms(\Zend_Search_Lucene_Search_Query $query)
{
$terms = array();
foreach ($query->rewrite($this->_index)->getQueryTerms() as $term) {
if (!array_key_exists($term->field, $terms)) {
$terms[$term->field] = array($term->text);
} else {
$terms[$term->field][] = $term->text;
}
}
return $terms;
}