first commit

This commit is contained in:
Sven Wappler
2021-04-17 21:20:54 +02:00
parent c93ec9492a
commit cadcc8edb4
406 changed files with 4917 additions and 5157 deletions

View File

@@ -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++;