first commit
This commit is contained in:
@@ -35,7 +35,7 @@ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSetService;
|
||||
use WapplerSystems\Meilisearch\Domain\Search\SearchRequest;
|
||||
use WapplerSystems\Meilisearch\Search;
|
||||
use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration;
|
||||
use WapplerSystems\Meilisearch\System\Solr\ParsingUtil;
|
||||
use WapplerSystems\Meilisearch\System\Meilisearch\ParsingUtil;
|
||||
use WapplerSystems\Meilisearch\Util;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
|
||||
@@ -95,15 +95,15 @@ class SuggestService {
|
||||
$groupList = Util::getFrontendUserGroupsList();
|
||||
|
||||
$suggestQuery = $this->queryBuilder->buildSuggestQuery($searchRequest->getRawUserQuery(), $additionalFilters, $requestId, $groupList);
|
||||
$solrSuggestions = $this->getSolrSuggestions($suggestQuery);
|
||||
$meilisearchSuggestions = $this->getMeilisearchSuggestions($suggestQuery);
|
||||
|
||||
if ($solrSuggestions === []) {
|
||||
if ($meilisearchSuggestions === []) {
|
||||
return ['status' => false];
|
||||
}
|
||||
|
||||
$maxSuggestions = $this->typoScriptConfiguration->getSuggestNumberOfSuggestions();
|
||||
$showTopResults = $this->typoScriptConfiguration->getSuggestShowTopResults();
|
||||
$suggestions = $this->getSuggestionArray($suggestQuery, $solrSuggestions, $maxSuggestions);
|
||||
$suggestions = $this->getSuggestionArray($suggestQuery, $meilisearchSuggestions, $maxSuggestions);
|
||||
|
||||
if (!$showTopResults) {
|
||||
return $this->getResultArray($searchRequest, $suggestions, [], false);
|
||||
@@ -155,17 +155,17 @@ class SuggestService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the suggestions from the solr server.
|
||||
* Retrieves the suggestions from the meilisearch server.
|
||||
*
|
||||
* @param SuggestQuery $suggestQuery
|
||||
* @return array
|
||||
*/
|
||||
protected function getSolrSuggestions(SuggestQuery $suggestQuery) : array
|
||||
protected function getMeilisearchSuggestions(SuggestQuery $suggestQuery) : array
|
||||
{
|
||||
$pageId = $this->tsfe->getRequestedId();
|
||||
$languageId = Util::getLanguageUid();
|
||||
$solr = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionByPageId($pageId, $languageId);
|
||||
$search = GeneralUtility::makeInstance(Search::class, /** @scrutinizer ignore-type */ $solr);
|
||||
$meilisearch = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionByPageId($pageId, $languageId);
|
||||
$search = GeneralUtility::makeInstance(Search::class, /** @scrutinizer ignore-type */ $meilisearch);
|
||||
$response = $search->search($suggestQuery, 0, 0);
|
||||
|
||||
$rawResponse = $response->getRawResponse();
|
||||
@@ -178,19 +178,19 @@ class SuggestService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts the suggestions from solr as array.
|
||||
* Extracts the suggestions from meilisearch as array.
|
||||
*
|
||||
* @param SuggestQuery $suggestQuery
|
||||
* @param array $solrSuggestions
|
||||
* @param array $meilisearchSuggestions
|
||||
* @param integer $maxSuggestions
|
||||
* @return array
|
||||
*/
|
||||
protected function getSuggestionArray(SuggestQuery $suggestQuery, $solrSuggestions, $maxSuggestions) : array
|
||||
protected function getSuggestionArray(SuggestQuery $suggestQuery, $meilisearchSuggestions, $maxSuggestions) : array
|
||||
{
|
||||
$queryString = $suggestQuery->getQuery();
|
||||
$suggestionCount = 0;
|
||||
$suggestions = [];
|
||||
foreach ($solrSuggestions as $string => $count) {
|
||||
foreach ($meilisearchSuggestions as $string => $count) {
|
||||
$suggestion = trim($queryString . ' ' . $string);
|
||||
$suggestions[$suggestion] = $count;
|
||||
$suggestionCount++;
|
||||
|
Reference in New Issue
Block a user