first commit
This commit is contained in:
@@ -41,10 +41,10 @@ use WapplerSystems\Meilisearch\Search\QueryAware;
|
||||
use WapplerSystems\Meilisearch\Search\SearchAware;
|
||||
use WapplerSystems\Meilisearch\Search\SearchComponentManager;
|
||||
use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration;
|
||||
use WapplerSystems\Meilisearch\System\Logging\SolrLogManager;
|
||||
use WapplerSystems\Meilisearch\System\Solr\Document\Document;
|
||||
use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter;
|
||||
use WapplerSystems\Meilisearch\System\Solr\SolrIncompleteResponseException;
|
||||
use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager;
|
||||
use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document;
|
||||
use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter;
|
||||
use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchIncompleteResponseException;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\SearchResultBuilder;
|
||||
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
||||
@@ -79,7 +79,7 @@ class SearchResultSetService
|
||||
/**
|
||||
* @var boolean
|
||||
*/
|
||||
protected $isSolrAvailable = false;
|
||||
protected $isMeilisearchAvailable = false;
|
||||
|
||||
/**
|
||||
* @var TypoScriptConfiguration
|
||||
@@ -87,7 +87,7 @@ class SearchResultSetService
|
||||
protected $typoScriptConfiguration;
|
||||
|
||||
/**
|
||||
* @var SolrLogManager
|
||||
* @var MeilisearchLogManager
|
||||
*/
|
||||
protected $logger = null;
|
||||
|
||||
@@ -109,17 +109,17 @@ class SearchResultSetService
|
||||
/**
|
||||
* @param TypoScriptConfiguration $configuration
|
||||
* @param Search $search
|
||||
* @param SolrLogManager $solrLogManager
|
||||
* @param MeilisearchLogManager $meilisearchLogManager
|
||||
* @param SearchResultBuilder $resultBuilder
|
||||
* @param QueryBuilder $queryBuilder
|
||||
*/
|
||||
public function __construct(TypoScriptConfiguration $configuration, Search $search, SolrLogManager $solrLogManager = null, SearchResultBuilder $resultBuilder = null, QueryBuilder $queryBuilder = null)
|
||||
public function __construct(TypoScriptConfiguration $configuration, Search $search, MeilisearchLogManager $meilisearchLogManager = null, SearchResultBuilder $resultBuilder = null, QueryBuilder $queryBuilder = null)
|
||||
{
|
||||
$this->search = $search;
|
||||
$this->typoScriptConfiguration = $configuration;
|
||||
$this->logger = $solrLogManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__);
|
||||
$this->logger = $meilisearchLogManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__);
|
||||
$this->searchResultBuilder = $resultBuilder ?? GeneralUtility::makeInstance(SearchResultBuilder::class);
|
||||
$this->queryBuilder = $queryBuilder ?? GeneralUtility::makeInstance(QueryBuilder::class, /** @scrutinizer ignore-type */ $configuration, /** @scrutinizer ignore-type */ $solrLogManager);
|
||||
$this->queryBuilder = $queryBuilder ?? GeneralUtility::makeInstance(QueryBuilder::class, /** @scrutinizer ignore-type */ $configuration, /** @scrutinizer ignore-type */ $meilisearchLogManager);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,10 +134,10 @@ class SearchResultSetService
|
||||
* @param bool $useCache
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsSolrAvailable($useCache = true)
|
||||
public function getIsMeilisearchAvailable($useCache = true)
|
||||
{
|
||||
$this->isSolrAvailable = $this->search->ping($useCache);
|
||||
return $this->isSolrAvailable;
|
||||
$this->isMeilisearchAvailable = $this->search->ping($useCache);
|
||||
return $this->isMeilisearchAvailable;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -179,8 +179,8 @@ class SearchResultSetService
|
||||
*/
|
||||
protected function getResultSetClassName()
|
||||
{
|
||||
return isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['searchResultSetClassName ']) ?
|
||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['searchResultSetClassName '] : SearchResultSet::class;
|
||||
return isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultSetClassName ']) ?
|
||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultSetClassName '] : SearchResultSet::class;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -204,7 +204,7 @@ class SearchResultSetService
|
||||
$this->initializeRegisteredSearchComponents($query, $searchRequest);
|
||||
$resultSet->setUsedQuery($query);
|
||||
|
||||
// performing the actual search, sending the query to the Solr server
|
||||
// performing the actual search, sending the query to the Meilisearch server
|
||||
$query = $this->modifyQuery($query, $searchRequest, $this->search);
|
||||
$response = $this->doASearch($query, $searchRequest);
|
||||
|
||||
@@ -294,7 +294,7 @@ class SearchResultSetService
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the search and builds a fake response for a current bug in Apache Solr 6.3
|
||||
* Executes the search and builds a fake response for a current bug in Meilisearch 6.3
|
||||
*
|
||||
* @param Query $query
|
||||
* @param SearchRequest $searchRequest
|
||||
@@ -308,7 +308,7 @@ class SearchResultSetService
|
||||
|
||||
$response = $this->search->search($query, $offSet, null);
|
||||
if($response === null) {
|
||||
throw new SolrIncompleteResponseException('The response retrieved from solr was incomplete', 1505989678);
|
||||
throw new MeilisearchIncompleteResponseException('The response retrieved from meilisearch was incomplete', 1505989678);
|
||||
}
|
||||
|
||||
return $response;
|
||||
@@ -375,19 +375,19 @@ class SearchResultSetService
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows to modify a query before eventually handing it over to Solr.
|
||||
* Allows to modify a query before eventually handing it over to Meilisearch.
|
||||
*
|
||||
* @param Query $query The current query before it's being handed over to Solr.
|
||||
* @param Query $query The current query before it's being handed over to Meilisearch.
|
||||
* @param SearchRequest $searchRequest The searchRequest, relevant in the current context
|
||||
* @param Search $search The search, relevant in the current context
|
||||
* @throws \UnexpectedValueException
|
||||
* @return Query The modified query that is actually going to be given to Solr.
|
||||
* @return Query The modified query that is actually going to be given to Meilisearch.
|
||||
*/
|
||||
protected function modifyQuery(Query $query, SearchRequest $searchRequest, Search $search)
|
||||
{
|
||||
// hook to modify the search query
|
||||
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchQuery'])) {
|
||||
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchQuery'] as $classReference) {
|
||||
if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifySearchQuery'])) {
|
||||
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifySearchQuery'] as $classReference) {
|
||||
$queryModifier = $this->objectManager->get($classReference);
|
||||
|
||||
if ($queryModifier instanceof Modifier) {
|
||||
@@ -413,7 +413,7 @@ class SearchResultSetService
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a single document from solr by document id.
|
||||
* Retrieves a single document from meilisearch by document id.
|
||||
*
|
||||
* @param string $documentId
|
||||
* @return SearchResult
|
||||
@@ -431,7 +431,7 @@ class SearchResultSetService
|
||||
throw new \UnexpectedValueException("Response did not contain a valid Document object");
|
||||
}
|
||||
|
||||
return $this->searchResultBuilder->fromApacheSolrDocument($resultDocument);
|
||||
return $this->searchResultBuilder->fromApacheMeilisearchDocument($resultDocument);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -443,11 +443,11 @@ class SearchResultSetService
|
||||
*/
|
||||
private function handleSearchHook($eventName, SearchResultSet $resultSet)
|
||||
{
|
||||
if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr'][$eventName])) {
|
||||
if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch'][$eventName])) {
|
||||
return $resultSet;
|
||||
}
|
||||
|
||||
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr'][$eventName] as $classReference) {
|
||||
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch'][$eventName] as $classReference) {
|
||||
$afterSearchProcessor = $this->objectManager->get($classReference);
|
||||
if ($afterSearchProcessor instanceof SearchResultSetProcessor) {
|
||||
$afterSearchProcessor->process($resultSet);
|
||||
|
Reference in New Issue
Block a user