Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Link
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 1
 readSearchResultList
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3/**
4 * @package ClientDldb
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsdldb\Elastic;
9
10use BO\Zmsdldb\Entity\Link as Entity;
11use BO\Zmsdldb\Collection\Links as Collection;
12use BO\Zmsdldb\File\Link as Base;
13
14class Link extends Base
15{
16    /**
17     * @return Collection
18     */
19    #[\Override]
20    public function readSearchResultList($query)
21    {
22        $boolquery = Helper::boolFilteredQuery();
23        $searchquery = new \Elastica\Query\QueryString();
24        if ('' === trim($query)) {
25            $searchquery->setQuery('*');
26        } else {
27            $searchquery->setQuery($query);
28        }
29        $searchquery->setFields([
30            'name^3',
31            'meta.titles^5',
32            'meta.keywords^9'
33        ]);
34        $boolquery->getQuery()->addShould($searchquery);
35        $resultList = $this->access()
36            ->getIndex()
37            ->getType('links')
38            ->search($boolquery, 1000);
39        $linkList = new Collection();
40        foreach ($resultList as $result) {
41            $link = new Entity($result->getData());
42            if (false === $linkList->offsetExists($link['link'])) {
43                $linkList[$link['link']] = $link;
44            }
45        }
46        return $linkList;
47    }
48}