first commit
This commit is contained in:
242
Classes/Domain/Search/ResultSet/Result/SearchResult.php
Normal file
242
Classes/Domain/Search/ResultSet/Result/SearchResult.php
Normal file
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
|
||||
namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result;
|
||||
|
||||
/***************************************************************
|
||||
* Copyright notice
|
||||
*
|
||||
* (c) 2015-2016 Timo Schmidt <timo.schmidt@dkd.de>
|
||||
* All rights reserved
|
||||
*
|
||||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||||
* free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The GNU General Public License can be found at
|
||||
* http://www.gnu.org/copyleft/gpl.html.
|
||||
*
|
||||
* This script is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* This copyright notice MUST APPEAR in all copies of the script!
|
||||
***************************************************************/
|
||||
|
||||
use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Grouping\GroupItem;
|
||||
use WapplerSystems\Meilisearch\System\Solr\Document\Document;
|
||||
|
||||
/**
|
||||
* Solr document class that should be used in the frontend in the search context.
|
||||
*
|
||||
* @author Timo Schmidt <timo.schmidt@dkd.de>
|
||||
*/
|
||||
class SearchResult extends Document
|
||||
{
|
||||
/**
|
||||
* The variant field value
|
||||
*
|
||||
* Value of Solr collapse field, which is defined via
|
||||
* TypoScript variable "variants.variantField"
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $variantFieldValue = '';
|
||||
|
||||
/**
|
||||
* Number of variants found
|
||||
*
|
||||
* May differ from documents in variants as
|
||||
* returned variants are limited by expand.rows
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $variantsNumFound = 0;
|
||||
|
||||
/**
|
||||
* @var SearchResult[]
|
||||
*/
|
||||
protected $variants = [];
|
||||
|
||||
/**
|
||||
* Indicates if an instance of this document is a variant (a sub document of another).
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $isVariant = false;
|
||||
|
||||
/**
|
||||
* References the parent document of the document is a variant.
|
||||
*
|
||||
* @var SearchResult|null
|
||||
*/
|
||||
protected $variantParent = null;
|
||||
|
||||
/**
|
||||
* @var GroupItem
|
||||
*/
|
||||
protected $groupItem = null;
|
||||
|
||||
|
||||
/**
|
||||
* @return GroupItem
|
||||
*/
|
||||
public function getGroupItem(): GroupItem
|
||||
{
|
||||
return $this->groupItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function getHasGroupItem()
|
||||
{
|
||||
return $this->groupItem !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param GroupItem $group
|
||||
*/
|
||||
public function setGroupItem(GroupItem $group)
|
||||
{
|
||||
$this->groupItem = $group;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getVariantFieldValue(): string
|
||||
{
|
||||
return $this->variantFieldValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $variantFieldValue
|
||||
*/
|
||||
public function setVariantFieldValue(string $variantFieldValue)
|
||||
{
|
||||
$this->variantFieldValue = $variantFieldValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVariantsNumFound(): int
|
||||
{
|
||||
return $this->variantsNumFound;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $numFound
|
||||
*/
|
||||
public function setVariantsNumFound(int $numFound)
|
||||
{
|
||||
$this->variantsNumFound = $numFound;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return SearchResult[]
|
||||
*/
|
||||
public function getVariants()
|
||||
{
|
||||
return $this->variants;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SearchResult $expandedResult
|
||||
*/
|
||||
public function addVariant(SearchResult $expandedResult)
|
||||
{
|
||||
$this->variants[] = $expandedResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsVariant()
|
||||
{
|
||||
return $this->isVariant;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $isVariant
|
||||
*/
|
||||
public function setIsVariant($isVariant)
|
||||
{
|
||||
$this->isVariant = $isVariant;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return SearchResult
|
||||
*/
|
||||
public function getVariantParent()
|
||||
{
|
||||
return $this->variantParent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SearchResult $variantParent
|
||||
*/
|
||||
public function setVariantParent(SearchResult $variantParent)
|
||||
{
|
||||
$this->variantParent = $variantParent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getContent()
|
||||
{
|
||||
return $this->fields['content'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public function getIsElevated()
|
||||
{
|
||||
return $this->fields['isElevated'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->fields['type'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return integer
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->fields['id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float
|
||||
*/
|
||||
public function getScore()
|
||||
{
|
||||
return $this->fields['score'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getUrl()
|
||||
{
|
||||
return $this->fields['url'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTitle()
|
||||
{
|
||||
return $this->fields['title'];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user