function searchObject($text, $p = false) { if ($p) { return $this->compareObject($text, $p, 'stripos'); } else { $this->reloadSearchTrie(); $results = array_values($this->SearchTrie->search($text, true)); $intersect = array_pop($results); foreach ($results as $batch) { $intersect = intersectOfIds($intersect, $batch); } return $intersect; } }
function query($path, $limit = 50, $offset = 0) { $queries = explode('&', $path); $ids = array(); foreach ($queries as $no => $query) { $triples = $this->LDPath->parse($query); if ($no === 0) { $ids = $this->Index->query($triples); } else { $ids = intersectOfIds($ids, $this->Index->query($triples)); } } $this->_lastSet = $ids; return $this->DescriptionStore->getDescriptionsByIDs(array_slice((array) $ids, $offset, $limit)); }