new parameter $limit of method search()

This commit is contained in:
Uwe Steinmann 2020-09-14 16:33:36 +02:00
parent d4c4de6284
commit e14774110f
2 changed files with 7 additions and 4 deletions

View File

@ -59,7 +59,7 @@ class SeedDMS_Lucene_Search {
* @param object $index lucene index * @param object $index lucene index
* @return object instance of SeedDMS_Lucene_Search * @return object instance of SeedDMS_Lucene_Search
*/ */
function search($term, $fields=array()) { /* {{{ */ function search($term, $fields=array(), $limit=array()) { /* {{{ */
$querystr = ''; $querystr = '';
if($term) if($term)
$querystr .= trim($term); $querystr .= trim($term);
@ -102,8 +102,11 @@ class SeedDMS_Lucene_Search {
try { try {
$hits = $this->index->find($query); $hits = $this->index->find($query);
$recs = array(); $recs = array();
$c = 0;
foreach($hits as $hit) { foreach($hits as $hit) {
$recs[] = array('id'=>$hit->id, 'document_id'=>$hit->document_id); if($c >= $limit['offset'] && ($c-$limit['offset'] < $limit))
$recs[] = array('id'=>$hit->id, 'document_id'=>$hit->document_id);
$c++;
} }
return array('count'=>count($hits), 'hits'=>$recs, 'facets'=>array()); return array('count'=>count($hits), 'hits'=>$recs, 'facets'=>array());
} catch (Zend_Search_Lucene_Exception $e) { } catch (Zend_Search_Lucene_Exception $e) {

View File

@ -59,7 +59,7 @@ class SeedDMS_SQliteFTS_Search {
* @param object $index SQlite FTS index * @param object $index SQlite FTS index
* @return object instance of SeedDMS_Lucene_Search * @return object instance of SeedDMS_Lucene_Search
*/ */
function search($term, $fields=array()) { /* {{{ */ function search($term, $fields=array(), $limit=array()) { /* {{{ */
$querystr = ''; $querystr = '';
if($term) if($term)
$querystr .= trim($term); $querystr .= trim($term);
@ -99,7 +99,7 @@ class SeedDMS_SQliteFTS_Search {
$querystr .= ')'; $querystr .= ')';
} }
try { try {
$result = $this->index->find($querystr); $result = $this->index->find($querystr, $limit);
$recs = array(); $recs = array();
foreach($result["hits"] as $hit) { foreach($result["hits"] as $hit) {
$recs[] = array('id'=>$hit->id, 'document_id'=>$hit->id); $recs[] = array('id'=>$hit->id, 'document_id'=>$hit->id);