returns weighted search results
This commit is contained in:
parent
dffeb3ff33
commit
ea5e33d0a2
|
@ -7,9 +7,12 @@ return [
|
|||
'router' => [
|
||||
'routes' => [
|
||||
'archiveSiteMeta' => [
|
||||
//'type' => \Laminas\Router\Http\Segment::class,
|
||||
'type' => \Laminas\Router\Http\Literal::class,
|
||||
'options' => [
|
||||
'route' => '/collections',
|
||||
//'route' => '/collections[/:action]',
|
||||
//'route' => '/collections',
|
||||
'route' => '/collections/search',
|
||||
'defaults' => [
|
||||
'__NAMESPACE__' => 'ArchiveSiteMeta\Controller',
|
||||
'controller' => Controller\ArchiveSiteMetaController::class,
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
namespace ArchiveSiteMeta\Controller;
|
||||
|
||||
use Laminas\Mvc\Controller\AbstractActionController;
|
||||
#use Laminas\View\Model\ViewModel;
|
||||
use Laminas\View\Model\JsonModel;
|
||||
|
||||
class ArchiveSiteMetaController extends AbstractActionController
|
||||
|
@ -12,17 +11,59 @@ class ArchiveSiteMetaController extends AbstractActionController
|
|||
{
|
||||
|
||||
}
|
||||
|
||||
public function indexAction()
|
||||
{
|
||||
return new JsonModel([
|
||||
'status' => 'SUCCESS',
|
||||
'message'=>'Here is your data',
|
||||
'data' => [
|
||||
'full_name' => 'John Doe',
|
||||
'address' => '51 Middle st.'
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
$query = [
|
||||
'limit' => 10,
|
||||
//'in_sites' => true,
|
||||
'fulltext_search' => $this->params()->fromQuery('fulltext_search'),
|
||||
];
|
||||
$resources = [
|
||||
'site_pages' => [
|
||||
'action' => 'site-pages',
|
||||
'query' => $query,
|
||||
'response' => null,
|
||||
],
|
||||
'items' => [
|
||||
'action' => 'items',
|
||||
'query' => array_merge($query, ['in_sites' => true]),
|
||||
'response' => null,
|
||||
],
|
||||
/*
|
||||
'item_sets' => [
|
||||
'action' => 'item-sets',
|
||||
'query' => array_merge($query, ['in_sites' => true]),
|
||||
'response' => null,
|
||||
],
|
||||
*/
|
||||
];
|
||||
|
||||
$resourceNames = ['site_pages', 'items'];
|
||||
|
||||
//$ids = $this->api()->search('site_pages', $query)->getContent();
|
||||
//$ids = $this->api()->search('site_pages', $query, ['return' => 'site'])->getContent();
|
||||
//$ids = $this->api()->search('site_pages', $query, ['returnScalar' => 'site'])->getContent();
|
||||
|
||||
$query_results = array();
|
||||
$items = $this->api()->search('items', $resources['items']['query'])->getContent();
|
||||
foreach($items as $item) {
|
||||
foreach($item->sites() as $site){
|
||||
array_push($query_results, $site->id());
|
||||
}
|
||||
}
|
||||
$pages = $this->api()->search('site_pages', $resources['site_pages']['query'], ['returnScalar' => 'site'])->getContent();
|
||||
foreach($pages as $page) {
|
||||
array_push($query_results, (int)$page);
|
||||
}
|
||||
$search_results = [];
|
||||
foreach($query_results as $site_id) {
|
||||
if (array_key_exists($site_id, $search_results)) {
|
||||
$search_results[$site_id] = $search_results[$site_id] + 1;
|
||||
} else {
|
||||
$search_results[$site_id] = 1;
|
||||
}
|
||||
}
|
||||
return new JsonModel($search_results);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue