From cadcc8edb431d4df182c150959080a858c12fa20 Mon Sep 17 00:00:00 2001 From: Sven Wappler Date: Sat, 17 Apr 2021 21:20:54 +0200 Subject: [PATCH] first commit --- Classes/AbstractDataHandlerListener.php | 10 +- Classes/AdditionalFieldsIndexer.php | 6 +- Classes/AdditionalPageIndexer.php | 4 +- .../IndexingConfigurationSelectorField.php | 6 +- Classes/Backend/SiteSelectorField.php | 2 +- Classes/ConnectionManager.php | 133 ++-- Classes/ContentObject/Classification.php | 2 +- Classes/ContentObject/Content.php | 2 +- Classes/ContentObject/Multivalue.php | 4 +- Classes/Controller/AbstractBaseController.php | 58 +- .../Search/AbstractModuleController.php | 56 +- .../CoreOptimizationModuleController.php | 32 +- .../IndexAdministrationModuleController.php | 40 +- .../Search/IndexQueueModuleController.php | 40 +- .../Backend/Search/InfoModuleController.php | 42 +- Classes/Controller/SearchController.php | 24 +- Classes/Controller/SuggestController.php | 10 +- .../Index/Classification/Classification.php | 2 +- .../Classification/ClassificationService.php | 2 +- Classes/Domain/Index/IndexService.php | 20 +- .../Helper/UriBuilder/AbstractUriStrategy.php | 20 +- .../Helper/UriBuilder/TYPO3SiteStrategy.php | 6 +- .../PageIndexer/Helper/UriStrategyFactory.php | 2 +- .../Queue/GarbageRemover/AbstractStrategy.php | 38 +- .../Queue/GarbageRemover/PageStrategy.php | 6 +- .../Queue/GarbageRemover/RecordStrategy.php | 2 +- .../IndexQueueIndexingPropertyRepository.php | 2 +- .../Queue/QueueInitializationService.php | 16 +- .../Index/Queue/QueueItemRepository.php | 20 +- .../ConfigurationAwareRecordService.php | 32 +- .../RecordMonitor/Helper/RootPageResolver.php | 6 +- .../Statistic/QueueStatisticsRepository.php | 2 +- .../Search/ApacheSolrDocument/Builder.php | 10 +- .../Search/ApacheSolrDocument/Repository.php | 34 +- .../LastSearches/LastSearchesRepository.php | 2 +- .../Search/Query/AbstractQueryBuilder.php | 4 +- .../Domain/Search/Query/ExtractingQuery.php | 2 +- .../Search/Query/Helper/EscapeService.php | 2 +- .../ParameterBuilder/AbstractFieldList.php | 4 +- .../ParameterBuilder/BigramPhraseFields.php | 12 +- .../Query/ParameterBuilder/Elevation.php | 12 +- .../Query/ParameterBuilder/Faceting.php | 14 +- .../ParameterBuilder/FieldCollapsing.php | 14 +- .../Search/Query/ParameterBuilder/Filters.php | 6 +- .../Query/ParameterBuilder/Grouping.php | 16 +- .../Query/ParameterBuilder/Highlighting.php | 14 +- .../Query/ParameterBuilder/Operator.php | 2 +- .../ParameterBuilder/ParameterBuilder.php | 2 +- .../Query/ParameterBuilder/PhraseFields.php | 12 +- .../Query/ParameterBuilder/QueryFields.php | 2 +- .../Query/ParameterBuilder/ReturnFields.php | 2 +- .../Search/Query/ParameterBuilder/Slops.php | 8 +- .../Search/Query/ParameterBuilder/Sorting.php | 2 +- .../Query/ParameterBuilder/Sortings.php | 2 +- .../Query/ParameterBuilder/Spellchecking.php | 10 +- .../ParameterBuilder/TrigramPhraseFields.php | 12 +- Classes/Domain/Search/Query/QueryBuilder.php | 20 +- Classes/Domain/Search/Query/SuggestQuery.php | 8 +- .../Search/ResultSet/Facets/AbstractFacet.php | 2 +- .../ResultSet/Facets/AbstractFacetParser.php | 6 +- .../Hierarchy/HierarchyFacetParser.php | 16 +- .../OptionBased/Hierarchy/HierarchyTool.php | 2 +- .../Hierarchy/HierarchyUrlDecoder.php | 6 +- .../Options/OptionsFacetParser.php | 32 +- .../QueryGroup/QueryGroupFacetParser.php | 6 +- .../RangeBased/AbstractRangeFacetParser.php | 2 +- .../Facets/RangeBased/DateRange/DateRange.php | 4 +- .../DateRange/DateRangeUrlDecoder.php | 6 +- .../RangeBased/NumericRange/NumericRange.php | 4 +- .../NumericRange/NumericRangeUrlDecoder.php | 6 +- .../Result/Parser/AbstractResultParser.php | 2 +- .../Result/Parser/DefaultResultParser.php | 2 +- .../Result/Parser/DocumentEscapeService.php | 10 +- .../Search/ResultSet/Result/SearchResult.php | 6 +- .../ResultSet/Result/SearchResultBuilder.php | 12 +- .../ResultSetReconstitutionProcessor.php | 4 +- .../Search/ResultSet/SearchResultSet.php | 4 +- .../ResultSet/SearchResultSetService.php | 54 +- .../Search/Score/ScoreCalculationService.php | 6 +- .../Domain/Search/SearchRequestBuilder.php | 4 +- .../Domain/Search/Suggest/SuggestService.php | 24 +- Classes/Domain/Site/Site.php | 26 +- Classes/Domain/Site/SiteHashService.php | 12 +- Classes/Domain/Site/SiteInterface.php | 16 +- Classes/Domain/Site/SiteRepository.php | 46 +- Classes/Domain/Site/Typo3ManagedSite.php | 30 +- Classes/Domain/Variants/IdBuilder.php | 4 +- Classes/Domain/Variants/VariantsProcessor.php | 6 +- Classes/Eid/SiteHash.php | 2 +- .../AbstractHierarchyProcessor.php | 8 +- .../FieldProcessor/CategoryUidToHierarchy.php | 22 +- Classes/FieldProcessor/PageUidToHierarchy.php | 22 +- Classes/FieldProcessor/PathToHierarchy.php | 10 +- Classes/FieldProcessor/Service.php | 4 +- Classes/FieldProcessor/TimestampToIsoDate.php | 4 +- .../FieldProcessor/TimestampToUtcIsoDate.php | 4 +- Classes/FrontendEnvironment.php | 2 +- Classes/FrontendEnvironment/TypoScript.php | 6 +- Classes/GarbageCollector.php | 2 +- Classes/HtmlContentExtractor.php | 12 +- Classes/IndexQueue/AbstractIndexer.php | 76 +- .../AdditionalIndexQueueItemIndexer.php | 2 +- .../DocumentPreparationException.php | 2 +- .../Exception/IndexingException.php | 2 +- .../FrontendHelper/AbstractFrontendHelper.php | 8 +- .../FrontendHelper/AuthorizationService.php | 4 +- .../PageFieldMappingIndexer.php | 20 +- .../IndexQueue/FrontendHelper/PageIndexer.php | 50 +- .../FrontendHelper/UserGroupDetector.php | 6 +- Classes/IndexQueue/Indexer.php | 114 +-- .../Initializer/AbstractInitializer.php | 12 +- Classes/IndexQueue/Initializer/Page.php | 4 +- .../IndexQueue/InvalidFieldNameException.php | 2 +- Classes/IndexQueue/PageIndexer.php | 40 +- .../PageIndexerDocumentsModifier.php | 2 +- Classes/IndexQueue/PageIndexerRequest.php | 14 +- Classes/IndexQueue/Queue.php | 18 +- Classes/IndexQueue/RecordMonitor.php | 42 +- .../IndexQueue/SerializedValueDetector.php | 4 +- .../Middleware/FrontendUserAuthenticator.php | 10 +- .../Middleware/PageIndexerInitialization.php | 8 +- .../Migrations/RemoveSiteFromScheduler.php | 2 +- ...t.php => MeilisearchControllerContext.php} | 4 +- ...NoMeilisearchConnectionFoundException.php} | 4 +- Classes/PageDocumentPostProcessor.php | 4 +- Classes/Query/Modifier/Faceting.php | 2 +- ...atus.php => AbstractMeilisearchStatus.php} | 4 +- .../AccessFilterPluginInstalledStatus.php | 50 +- Classes/Report/AllowUrlFOpenStatus.php | 4 +- Classes/Report/FilterVarStatus.php | 4 +- ...Status.php => MeilisearchConfigStatus.php} | 26 +- ...php => MeilisearchConfigurationStatus.php} | 14 +- .../{SolrStatus.php => MeilisearchStatus.php} | 122 +-- ...tatus.php => MeilisearchVersionStatus.php} | 70 +- Classes/Report/SchemaStatus.php | 20 +- Classes/Report/SiteHandlingStatus.php | 4 +- .../Response/Processor/ResponseProcessor.php | 2 +- Classes/Search.php | 84 +- Classes/Search/AccessComponent.php | 2 +- Classes/Search/AnalysisComponent.php | 2 +- Classes/Search/DebugComponent.php | 2 +- Classes/Search/ElevationComponent.php | 2 +- Classes/Search/FacetingComponent.php | 2 +- Classes/Search/HighlightingComponent.php | 2 +- Classes/Search/LastSearchesComponent.php | 2 +- Classes/Search/RelevanceComponent.php | 2 +- Classes/Search/ResponseModifier.php | 2 +- Classes/Search/SortingComponent.php | 2 +- Classes/Search/SpellcheckingComponent.php | 2 +- Classes/Search/StatisticsComponent.php | 10 +- Classes/SubstitutePageIndexer.php | 4 +- .../Configuration/ExtensionConfiguration.php | 2 +- .../Configuration/TypoScriptConfiguration.php | 16 +- .../Backend/Toolbar/ClearCacheActionsHook.php | 12 +- Classes/System/Logging/DebugWriter.php | 4 +- ...gManager.php => MeilisearchLogManager.php} | 4 +- .../Document/Document.php | 2 +- .../MeilisearchCommunicationException.php} | 18 +- .../MeilisearchConnection.php} | 141 +--- ...eilisearchIncompleteResponseException.php} | 6 +- ...ilisearchInternalServerErrorException.php} | 6 +- .../MeilisearchUnavailableException.php} | 6 +- .../Parser/SchemaParser.php | 12 +- .../Parser/StopWordParser.php | 10 +- .../Parser/SynonymParser.php | 10 +- .../{Solr => Meilisearch}/ParsingUtil.php | 4 +- .../{Solr => Meilisearch}/RequestFactory.php | 2 +- .../{Solr => Meilisearch}/ResponseAdapter.php | 12 +- .../{Solr => Meilisearch}/Schema/Schema.php | 4 +- .../Service/AbstractMeilisearchService.php} | 64 +- .../Service/MeilisearchAdminService.php} | 62 +- .../Service/MeilisearchReadService.php} | 36 +- .../Service/MeilisearchWriteService.php} | 18 +- .../InvalidViewObjectNameException.php | 2 +- Classes/System/Mvc/Backend/ModuleData.php | 2 +- .../Service/ModuleDataStorageService.php | 4 +- Classes/System/Records/AbstractRepository.php | 2 +- .../System/Records/Pages/PagesRepository.php | 2 +- .../SystemLanguageRepository.php | 4 +- .../SystemTemplateRepository.php | 4 +- .../System/Service/ConfigurationService.php | 8 +- .../System/Session/FrontendUserSession.php | 2 +- Classes/System/Solr/Node.php | 166 ---- .../UserFunctions/FlexFormUserFunctions.php | 18 +- Classes/System/Util/SiteUtility.php | 16 +- Classes/System/Validator/Path.php | 6 +- Classes/Task/AbstractMeilisearchTask.php | 8 +- Classes/Task/IndexQueueWorkerTask.php | 4 +- Classes/Task/ReIndexTask.php | 18 +- .../ReIndexTaskAdditionalFieldProvider.php | 6 +- Classes/Typo3PageContentExtractor.php | 10 +- Classes/Typo3PageIndexer.php | 130 ++-- Classes/Util.php | 2 +- Classes/Utility/ManagedResourcesUtility.php | 2 +- ...AbstractSolrFrontendTagBasedViewHelper.php | 16 +- .../AbstractSolrFrontendViewHelper.php | 16 +- .../AbstractSolrTagBasedViewHelper.php | 2 +- .../ViewHelpers/AbstractSolrViewHelper.php | 2 +- .../Backend/Button/HelpButtonViewHelper.php | 4 +- .../IfHasAccessToModuleViewHelper.php | 2 +- .../Debug/DocumentScoreAnalyzerViewHelper.php | 6 +- Classes/ViewHelpers/Debug/QueryViewHelper.php | 4 +- .../Document/HighlightResultViewHelper.php | 4 +- .../Document/RelevanceViewHelper.php | 4 +- .../Facet/Area/GroupViewHelper.php | 4 +- .../Group/Prefix/LabelFilterViewHelper.php | 4 +- .../Group/Prefix/LabelPrefixesViewHelper.php | 4 +- .../PageBrowserRangeViewHelper.php | 2 +- Classes/ViewHelpers/SearchFormViewHelper.php | 2 +- .../ViewHelpers/Uri/AbstractUriViewHelper.php | 6 +- .../Result/AddSearchWordListViewHelper.php | 4 +- .../FrequentlySearchedController.php | 2 +- .../GroupItemPaginateController.php | 4 +- .../Controller/ResultPaginateController.php | 4 +- Classes/Widget/AbstractWidgetController.php | 28 +- Classes/Widget/AbstractWidgetViewHelper.php | 12 +- Configuration/RequestMiddlewares.php | 8 +- .../SiteConfiguration/Overrides/sites.php | 76 +- Configuration/TCA/Overrides/sys_template.php | 33 +- Configuration/TCA/Overrides/tt_content.php | 12 +- .../Mod/Wizards/NewContentElement.tsconfig | 4 +- .../Examples/Ajaxify/setup.typoscript | 12 +- .../ConnectionFromConfVars/setup.typoscript | 18 +- .../Facets/DateRange/setup.typoscript | 8 +- .../Facets/NumericRange/setup.typoscript | 8 +- .../Examples/Facets/Options/setup.typoscript | 4 +- .../Facets/OptionsFiltered/setup.typoscript | 4 +- .../OptionsPrefixGrouped/setup.typoscript | 4 +- .../Facets/OptionsSinglemode/setup.typoscript | 4 +- .../Facets/OptionsToggle/setup.typoscript | 4 +- .../Examples/IndexQueueNews/setup.typoscript | 2 +- .../IndexQueueTtNews/setup.typoscript | 2 +- .../Examples/Suggest/setup.typoscript | 12 +- Configuration/TypoScript/Solr/constants.txt | 2 +- .../TypoScript/Solr/constants.typoscript | 4 +- Configuration/TypoScript/Solr/setup.txt | 2 +- .../TypoScript/Solr/setup.typoscript | 730 +++++++++--------- .../TypoScript/StyleSheets/setup.typoscript | 2 +- README.md | 39 +- Resources/Css/Report/index.css | 4 +- Resources/Private/Install/install-solr.sh | 46 +- Resources/Private/Language/cn.locallang.xlf | 4 +- Resources/Private/Language/de.locallang.xlf | 34 +- Resources/Private/Language/dk.locallang.xlf | 16 +- Resources/Private/Language/fr.locallang.xlf | 40 +- Resources/Private/Language/it.locallang.xlf | 4 +- Resources/Private/Language/jp.locallang.xlf | 4 +- Resources/Private/Language/kr.locallang.xlf | 4 +- Resources/Private/Language/locallang.xlf | 114 +-- Resources/Private/Language/locallang_mod.xlf | 10 +- .../Language/locallang_mod_coreoptimize.xlf | 4 +- .../Language/locallang_mod_indexadmin.xlf | 8 +- .../Language/locallang_mod_indexqueue.xlf | 4 +- .../Private/Language/locallang_mod_info.xlf | 4 +- Resources/Private/Language/nl.locallang.xlf | 36 +- Resources/Private/Language/pl.locallang.xlf | 4 +- .../Backend/ApacheSolr/SingleDocument.html | 6 +- .../Partials/Backend/NoSiteAvailable.html | 16 +- .../Private/Partials/Facets/Default.html | 2 +- .../Private/Partials/Facets/Hierarchy.html | 8 +- .../Private/Partials/Facets/Options.html | 10 +- .../Partials/Facets/OptionsFiltered.html | 10 +- .../Partials/Facets/OptionsPrefixGrouped.html | 4 +- .../Partials/Facets/OptionsSinglemode.html | 10 +- .../Partials/Facets/OptionsToggle.html | 14 +- .../Private/Partials/Facets/RangeDate.html | 4 +- .../Private/Partials/Facets/RangeNumeric.html | 4 +- .../Private/Partials/Facets/Rootline.html | 6 +- .../Private/Partials/Result/Document.html | 2 +- Resources/Private/Partials/Result/Facets.html | 6 +- .../Private/Partials/Result/FacetsActive.html | 10 +- .../Private/Partials/Result/PerPage.html | 4 +- .../Private/Partials/Result/RelevanceBar.html | 4 +- .../Private/Partials/Result/Sorting.html | 12 +- Resources/Private/Partials/Search/Form.html | 12 +- .../Partials/Search/FrequentlySearched.html | 8 +- .../Private/Partials/Search/LastSearches.html | 8 +- .../Php/ComposerLibraries/composer.lock | 4 +- .../ext_solr_11_0_0/conf/arabic/schema.xml | 138 ++-- .../ext_solr_11_0_0/conf/armenian/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/basque/schema.xml | 114 +-- .../conf/brazilian_portuguese/schema.xml | 122 +-- .../ext_solr_11_0_0/conf/bulgarian/schema.xml | 126 +-- .../ext_solr_11_0_0/conf/burmese/readme.txt | 4 +- .../ext_solr_11_0_0/conf/burmese/schema.xml | 64 +- .../ext_solr_11_0_0/conf/catalan/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/chinese/schema.xml | 88 +-- .../ext_solr_11_0_0/conf/czech/schema.xml | 118 +-- .../ext_solr_11_0_0/conf/danish/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/dutch/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/elevate.xml | 6 +- .../ext_solr_11_0_0/conf/english/schema.xml | 120 +-- .../ext_solr_11_0_0/conf/finnish/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/french/schema.xml | 126 +-- .../ext_solr_11_0_0/conf/galician/schema.xml | 126 +-- .../conf/general_schema_fields.xml | 4 +- .../conf/general_schema_types.xml | 86 +-- .../ext_solr_11_0_0/conf/generic/schema.xml | 106 +-- .../ext_solr_11_0_0/conf/german/schema.xml | 130 ++-- .../ext_solr_11_0_0/conf/greek/schema.xml | 122 +-- .../ext_solr_11_0_0/conf/hindi/schema.xml | 146 ++-- .../ext_solr_11_0_0/conf/hungarian/schema.xml | 114 +-- .../conf/indonesian/schema.xml | 126 +-- .../ext_solr_11_0_0/conf/irish/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/italian/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/japanese/schema.xml | 88 +-- .../ext_solr_11_0_0/conf/khmer/readme.txt | 4 +- .../ext_solr_11_0_0/conf/khmer/schema.xml | 52 +- .../ext_solr_11_0_0/conf/korean/schema.xml | 88 +-- .../ext_solr_11_0_0/conf/lao/readme.txt | 4 +- .../ext_solr_11_0_0/conf/lao/schema.xml | 52 +- .../ext_solr_11_0_0/conf/latvia/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/norwegian/schema.xml | 112 +-- .../ext_solr_11_0_0/conf/persian/schema.xml | 138 ++-- .../ext_solr_11_0_0/conf/polish/schema.xml | 122 +-- .../conf/portuguese/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/romanian/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/russian/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/serbian/schema.xml | 118 +-- .../ext_solr_11_0_0/conf/solrconfig.xml | 154 ++-- .../ext_solr_11_0_0/conf/spanish/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/swedish/schema.xml | 114 +-- .../ext_solr_11_0_0/conf/thai/schema.xml | 112 +-- .../ext_solr_11_0_0/conf/turkish/schema.xml | 116 +-- .../ext_solr_11_0_0/conf/ukrainian/schema.xml | 114 +-- .../conf/velocity/VM_global_library.vm | 14 +- .../ext_solr_11_0_0/conf/velocity/footer.vm | 4 +- .../ext_solr_11_0_0/conf/velocity/head.vm | 14 +- .../ext_solr_11_0_0/conf/velocity/header.vm | 4 +- .../ext_solr_11_0_0/conf/velocity/layout.vm | 4 +- .../Private/Solr/cores/arabic/core.properties | 4 +- .../Solr/cores/armenian/core.properties | 4 +- .../Private/Solr/cores/basque/core.properties | 4 +- .../brazilian_portuguese/core.properties | 2 +- .../Solr/cores/bulgarian/core.properties | 2 +- .../Solr/cores/burmese/core.properties | 2 +- .../Solr/cores/catalan/core.properties | 2 +- .../Solr/cores/chinese/core.properties | 2 +- .../Private/Solr/cores/czech/core.properties | 2 +- .../Private/Solr/cores/danish/core.properties | 2 +- .../Private/Solr/cores/dutch/core.properties | 2 +- .../Solr/cores/english/core.properties | 2 +- .../Solr/cores/finnish/core.properties | 2 +- .../Private/Solr/cores/french/core.properties | 2 +- .../Solr/cores/galician/core.properties | 2 +- .../Private/Solr/cores/german/core.properties | 2 +- .../Private/Solr/cores/greek/core.properties | 2 +- .../Private/Solr/cores/hindi/core.properties | 2 +- .../Solr/cores/hungarian/core.properties | 2 +- .../Solr/cores/indonesian/core.properties | 2 +- .../Private/Solr/cores/irish/core.properties | 2 +- .../Solr/cores/italian/core.properties | 2 +- .../Solr/cores/japanese/core.properties | 2 +- .../Private/Solr/cores/khmer/core.properties | 2 +- .../Private/Solr/cores/korean/core.properties | 2 +- .../Private/Solr/cores/lao/core.properties | 2 +- .../Private/Solr/cores/latvia/core.properties | 2 +- .../Solr/cores/norwegian/core.properties | 2 +- .../Solr/cores/persian/core.properties | 2 +- .../Private/Solr/cores/polish/core.properties | 2 +- .../Solr/cores/portuguese/core.properties | 2 +- .../Solr/cores/romanian/core.properties | 2 +- .../Solr/cores/russian/core.properties | 2 +- .../Solr/cores/serbian/core.properties | 2 +- .../Solr/cores/spanish/core.properties | 2 +- .../Solr/cores/swedish/core.properties | 2 +- .../Private/Solr/cores/thai/core.properties | 2 +- .../Solr/cores/turkish/core.properties | 2 +- .../Solr/cores/ukrainian/core.properties | 2 +- Resources/Private/Solr/solr.xml | 12 +- Resources/Private/Solr/zoo.cfg | 6 +- ...FilterPluginInstalledStatusIsOutDated.html | 12 +- ...lterPluginInstalledStatusNotInstalled.html | 12 +- .../Backend/Reports/RootPageFlagStatus.html | 2 +- .../Backend/Reports/SchemaStatus.html | 24 +- .../Backend/Reports/SolrConfigStatus.html | 28 +- .../Templates/Backend/Reports/SolrStatus.html | 16 +- .../Backend/Reports/SolrVersionStatus.html | 10 +- .../Search/CoreOptimizationModule/Index.html | 2 +- .../IndexAdministrationModule/Index.html | 18 +- .../Search/IndexQueueModule/Index.html | 48 +- .../Search/IndexQueueModule/ShowError.html | 4 +- .../Search/InfoModule/DocumentsDetails.html | 4 +- .../Backend/Search/InfoModule/Index.html | 34 +- .../Private/Templates/Search/Detail.html | 4 +- Resources/Private/Templates/Search/Form.html | 4 +- .../Templates/Search/FrequentlySearched.html | 4 +- .../Private/Templates/Search/Results.html | 10 +- .../Templates/Search/SolrNotAvailable.html | 4 +- .../Widget/GroupItemPaginate/Index.html | 16 +- .../Widget/ResultPaginate/Index.html | 16 +- Resources/Public/Icons/Extension.png | Bin 4315 -> 3424 bytes .../Images/Icons/InitSolrConnection.svg | 6 +- .../Images/Icons/InitSolrConnections.svg | 6 +- .../Public/Images/Icons/ModuleSolrMain.svg | 6 +- .../Public/JavaScript/SearchStatistics.js | 2 +- .../JavaScript/facet_daterange_controller.js | 4 +- .../JavaScript/facet_options_controller.js | 10 +- .../Public/JavaScript/search_controller.js | 22 +- .../Public/JavaScript/suggest_controller.js | 24 +- .../Public/StyleSheets/Frontend/loader.css | 2 +- .../Public/StyleSheets/Frontend/results.css | 48 +- .../Public/StyleSheets/Frontend/suggest.css | 12 +- .../StyleSheets/ModuleAdministration.css | 4 +- ext_emconf.php | 2 +- ext_tables.php | 40 +- 406 files changed, 4917 insertions(+), 5157 deletions(-) rename Classes/Mvc/Controller/{SolrControllerContext.php => MeilisearchControllerContext.php} (94%) rename Classes/{NoSolrConnectionFoundException.php => NoMeilisearchConnectionFoundException.php} (92%) rename Classes/Report/{AbstractSolrStatus.php => AbstractMeilisearchStatus.php} (94%) rename Classes/Report/{SolrConfigStatus.php => MeilisearchConfigStatus.php} (66%) rename Classes/Report/{SolrConfigurationStatus.php => MeilisearchConfigurationStatus.php} (92%) rename Classes/Report/{SolrStatus.php => MeilisearchStatus.php} (54%) rename Classes/Report/{SolrVersionStatus.php => MeilisearchVersionStatus.php} (54%) rename Classes/System/Logging/{SolrLogManager.php => MeilisearchLogManager.php} (97%) rename Classes/System/{Solr => Meilisearch}/Document/Document.php (95%) rename Classes/System/{Solr/SolrCommunicationException.php => Meilisearch/MeilisearchCommunicationException.php} (69%) rename Classes/System/{Solr/SolrConnection.php => Meilisearch/MeilisearchConnection.php} (55%) rename Classes/System/{Solr/SolrInternalServerErrorException.php => Meilisearch/MeilisearchIncompleteResponseException.php} (80%) rename Classes/System/{Solr/SolrIncompleteResponseException.php => Meilisearch/MeilisearchInternalServerErrorException.php} (78%) rename Classes/System/{Solr/SolrUnavailableException.php => Meilisearch/MeilisearchUnavailableException.php} (82%) rename Classes/System/{Solr => Meilisearch}/Parser/SchemaParser.php (86%) rename Classes/System/{Solr => Meilisearch}/Parser/StopWordParser.php (83%) rename Classes/System/{Solr => Meilisearch}/Parser/SynonymParser.php (84%) rename Classes/System/{Solr => Meilisearch}/ParsingUtil.php (90%) rename Classes/System/{Solr => Meilisearch}/RequestFactory.php (95%) rename Classes/System/{Solr => Meilisearch}/ResponseAdapter.php (86%) rename Classes/System/{Solr => Meilisearch}/Schema/Schema.php (93%) rename Classes/System/{Solr/Service/AbstractSolrService.php => Meilisearch/Service/AbstractMeilisearchService.php} (85%) rename Classes/System/{Solr/Service/SolrAdminService.php => Meilisearch/Service/MeilisearchAdminService.php} (83%) rename Classes/System/{Solr/Service/SolrReadService.php => Meilisearch/Service/MeilisearchReadService.php} (65%) rename Classes/System/{Solr/Service/SolrWriteService.php => Meilisearch/Service/MeilisearchWriteService.php} (87%) delete mode 100644 Classes/System/Solr/Node.php diff --git a/Classes/AbstractDataHandlerListener.php b/Classes/AbstractDataHandlerListener.php index 5305f50..9187619 100644 --- a/Classes/AbstractDataHandlerListener.php +++ b/Classes/AbstractDataHandlerListener.php @@ -30,11 +30,11 @@ use TYPO3\CMS\Core\Database\QueryGenerator; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Changes in TYPO3 have an impact on the solr content and are caught + * Changes in TYPO3 have an impact on the meilisearch content and are caught * by the GarbageCollector and RecordMonitor. Both act as a TCE Main Hook. * * This base class is used to share functionality that are needed for both - * to perform the changes in the data handler on the solr index. + * to perform the changes in the data handler on the meilisearch index. * * @author Timo Schmidt */ @@ -121,12 +121,12 @@ abstract class AbstractDataHandlerListener $isRecursiveUpdateRequired = $this->isRecursiveUpdateRequired($pageId, $changedFields); // If RecursiveUpdateTriggerConfiguration is false => check if changeFields are part of recursiveUpdateFields if ($isRecursiveUpdateRequired === false) { - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($pageId); - $indexQueueConfigurationName = $this->configurationAwareRecordService->getIndexingConfigurationName('pages', $pageId, $solrConfiguration); + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($pageId); + $indexQueueConfigurationName = $this->configurationAwareRecordService->getIndexingConfigurationName('pages', $pageId, $meilisearchConfiguration); if ($indexQueueConfigurationName === null) { return false; } - $updateFields = $solrConfiguration->getIndexQueueConfigurationRecursiveUpdateFields($indexQueueConfigurationName); + $updateFields = $meilisearchConfiguration->getIndexQueueConfigurationRecursiveUpdateFields($indexQueueConfigurationName); // Check if no additional fields have been defined and then skip recursive update if (empty($updateFields)) { diff --git a/Classes/AdditionalFieldsIndexer.php b/Classes/AdditionalFieldsIndexer.php index 7654868..17ef2de 100644 --- a/Classes/AdditionalFieldsIndexer.php +++ b/Classes/AdditionalFieldsIndexer.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch; ***************************************************************/ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use WapplerSystems\Meilisearch\System\ContentObject\ContentObjectService; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -67,7 +67,7 @@ class AdditionalFieldsIndexer implements SubstitutePageIndexer */ public function __construct(TypoScriptConfiguration $configuration = null, ContentObjectService $contentObjectService = null) { - $this->configuration = $configuration === null ? Util::getSolrConfiguration() : $configuration; + $this->configuration = $configuration === null ? Util::getMeilisearchConfiguration() : $configuration; $this->additionalIndexingFields = $this->configuration->getIndexAdditionalFieldsConfiguration(); $this->additionalFieldNames = $this->configuration->getIndexMappedAdditionalFieldNames(); $this->contentObjectService = $contentObjectService === null ? GeneralUtility::makeInstance(ContentObjectService::class) : $contentObjectService; @@ -80,7 +80,7 @@ class AdditionalFieldsIndexer implements SubstitutePageIndexer * plugin.tx_meilisearch.index.additionalFields. * * @param Document $pageDocument The original page document. - * @return Document A Apache Solr Document object that replace the default page document + * @return Document A Meilisearch Document object that replace the default page document */ public function getPageDocument(Document $pageDocument) { diff --git a/Classes/AdditionalPageIndexer.php b/Classes/AdditionalPageIndexer.php index bfa62a0..86e275d 100644 --- a/Classes/AdditionalPageIndexer.php +++ b/Classes/AdditionalPageIndexer.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; /** * Interface that defines the method an indexer must implement to provide @@ -43,7 +43,7 @@ interface AdditionalPageIndexer * * @param Document $pageDocument The original page document. * @param array $allDocuments An array containing all the documents collected until here, including the page document - * @return array An array of additional \WapplerSystems\Meilisearch\System\Solr\Document\Document objects + * @return array An array of additional \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document objects */ public function getAdditionalPageDocuments(Document $pageDocument, array $allDocuments); } diff --git a/Classes/Backend/IndexingConfigurationSelectorField.php b/Classes/Backend/IndexingConfigurationSelectorField.php index 0bcbc6d..be5ab05 100644 --- a/Classes/Backend/IndexingConfigurationSelectorField.php +++ b/Classes/Backend/IndexingConfigurationSelectorField.php @@ -141,10 +141,10 @@ class IndexingConfigurationSelectorField { $indexingTableMap = []; - $solrConfiguration = $this->site->getSolrConfiguration(); - $configurationNames = $solrConfiguration->getEnabledIndexQueueConfigurationNames(); + $meilisearchConfiguration = $this->site->getMeilisearchConfiguration(); + $configurationNames = $meilisearchConfiguration->getEnabledIndexQueueConfigurationNames(); foreach ($configurationNames as $configurationName) { - $indexingTableMap[$configurationName] = $solrConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($configurationName); + $indexingTableMap[$configurationName] = $meilisearchConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($configurationName); } return $indexingTableMap; diff --git a/Classes/Backend/SiteSelectorField.php b/Classes/Backend/SiteSelectorField.php index 003b6f0..bb9db02 100644 --- a/Classes/Backend/SiteSelectorField.php +++ b/Classes/Backend/SiteSelectorField.php @@ -39,7 +39,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; class SiteSelectorField { /** - * Creates a dropdown selector of available TYPO3 sites with Solr configured. + * Creates a dropdown selector of available TYPO3 sites with Meilisearch configured. * * @param string $selectorName Name to be used in the select's name attribute * @param Site $selectedSite Optional, currently selected site diff --git a/Classes/ConnectionManager.php b/Classes/ConnectionManager.php index fe95cdf..b6dbc7f 100644 --- a/Classes/ConnectionManager.php +++ b/Classes/ConnectionManager.php @@ -24,20 +24,20 @@ namespace WapplerSystems\Meilisearch; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ +use MeiliSearch\Client; +use TYPO3\CMS\Core\Utility\DebugUtility; use WapplerSystems\Meilisearch\Domain\Site\Site; use WapplerSystems\Meilisearch\Domain\Site\SiteRepository; -use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository as PagesRepositoryAtExtSolr; +use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository as PagesRepositoryAtExtMeilisearch; use WapplerSystems\Meilisearch\System\Records\SystemLanguage\SystemLanguageRepository; -use WapplerSystems\Meilisearch\System\Solr\Node; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use InvalidArgumentException; -use TYPO3\CMS\Core\Registry; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; use function json_encode; /** - * ConnectionManager is responsible to create SolrConnection objects. + * ConnectionManager is responsible to create MeilisearchConnection objects. * * @author Ingo Renner */ @@ -55,9 +55,9 @@ class ConnectionManager implements SingletonInterface protected $systemLanguageRepository; /** - * @var PagesRepositoryAtExtSolr + * @var PagesRepositoryAtExtMeilisearch */ - protected $pagesRepositoryAtExtSolr; + protected $pagesRepositoryAtExtMeilisearch; /** * @var SiteRepository @@ -67,130 +67,130 @@ class ConnectionManager implements SingletonInterface /** * @param SystemLanguageRepository $systemLanguageRepository - * @param PagesRepositoryAtExtSolr|null $pagesRepositoryAtExtSolr + * @param PagesRepositoryAtExtMeilisearch|null $pagesRepositoryAtExtMeilisearch * @param SiteRepository $siteRepository */ public function __construct( SystemLanguageRepository $systemLanguageRepository = null, - PagesRepositoryAtExtSolr $pagesRepositoryAtExtSolr = null, + PagesRepositoryAtExtMeilisearch $pagesRepositoryAtExtMeilisearch = null, SiteRepository $siteRepository = null ) { $this->systemLanguageRepository = $systemLanguageRepository ?? GeneralUtility::makeInstance(SystemLanguageRepository::class); $this->siteRepository = $siteRepository ?? GeneralUtility::makeInstance(SiteRepository::class); - $this->pagesRepositoryAtExtSolr = $pagesRepositoryAtExtSolr ?? GeneralUtility::makeInstance(PagesRepositoryAtExtSolr::class); + $this->pagesRepositoryAtExtMeilisearch = $pagesRepositoryAtExtMeilisearch ?? GeneralUtility::makeInstance(PagesRepositoryAtExtMeilisearch::class); } /** - * Creates a solr connection for read and write endpoints + * Creates a meilisearch connection for read and write endpoints * * @param array $readNodeConfiguration * @param array $writeNodeConfiguration - * @return SolrConnection|object + * @return MeilisearchConnection|object */ - public function getSolrConnectionForNodes(array $readNodeConfiguration, array $writeNodeConfiguration) + public function getMeilisearchConnectionForNodes(array $readNodeConfiguration, array $writeNodeConfiguration) { $connectionHash = md5(json_encode($readNodeConfiguration) . json_encode($writeNodeConfiguration)); if (!isset(self::$connections[$connectionHash])) { - $readNode = Node::fromArray($readNodeConfiguration); - $writeNode = Node::fromArray($writeNodeConfiguration); - self::$connections[$connectionHash] = GeneralUtility::makeInstance(SolrConnection::class, $readNode, $writeNode); + $readNode = $this->createClientFromArray($readNodeConfiguration); + $writeNode = $this->createClientFromArray($writeNodeConfiguration); + self::$connections[$connectionHash] = GeneralUtility::makeInstance(MeilisearchConnection::class, $readNode, $writeNode); } return self::$connections[$connectionHash]; } /** - * Creates a solr configuration from the configuration array and returns it. + * Creates a meilisearch configuration from the configuration array and returns it. * - * @param array $config The solr configuration array - * @return SolrConnection + * @param array $config The meilisearch configuration array + * @return MeilisearchConnection */ public function getConnectionFromConfiguration(array $config) { - if(empty($config['read']) && !empty($config['solrHost'])) { - throw new InvalidArgumentException('Invalid registry data please re-initialize your solr connections'); + if(empty($config['read']) && !empty($config['meilisearchHost'])) { + throw new InvalidArgumentException('Invalid registry data please re-initialize your meilisearch connections'); } - return $this->getSolrConnectionForNodes($config['read'], $config['write']); + return $this->getMeilisearchConnectionForNodes($config['read'], $config['write']); } /** - * Gets a Solr connection for a page ID. + * Gets a Meilisearch connection for a page ID. * * @param int $pageId A page ID. * @param int $language The language ID to get the connection for as the path may differ. Optional, defaults to 0. * @param string $mount Comma list of MountPoint parameters - * @return SolrConnection A solr connection. - * @throws NoSolrConnectionFoundException + * @return MeilisearchConnection A meilisearch connection. + * @throws NoMeilisearchConnectionFoundException */ public function getConnectionByPageId($pageId, $language = 0, $mount = '') { try { $site = $this->siteRepository->getSiteByPageId($pageId, $mount); $this->throwExceptionOnInvalidSite($site, 'No site for pageId ' . $pageId); - $config = $site->getSolrConnectionConfiguration($language); - $solrConnection = $this->getConnectionFromConfiguration($config); - return $solrConnection; + $config = $site->getMeilisearchConnectionConfiguration($language); + $meilisearchConnection = $this->getConnectionFromConfiguration($config); + return $meilisearchConnection; } catch(InvalidArgumentException $e) { - $noSolrConnectionException = $this->buildNoConnectionExceptionForPageAndLanguage($pageId, $language); - throw $noSolrConnectionException; + $noMeilisearchConnectionException = $this->buildNoConnectionExceptionForPageAndLanguage($pageId, $language); + throw $noMeilisearchConnectionException; } } /** - * Gets a Solr connection for a root page ID. + * Gets a Meilisearch connection for a root page ID. * * @param int $pageId A root page ID. * @param int $language The language ID to get the connection for as the path may differ. Optional, defaults to 0. - * @return SolrConnection A solr connection. - * @throws NoSolrConnectionFoundException + * @return MeilisearchConnection A meilisearch connection. + * @throws NoMeilisearchConnectionFoundException */ public function getConnectionByRootPageId($pageId, $language = 0) { try { $site = $this->siteRepository->getSiteByRootPageId($pageId); $this->throwExceptionOnInvalidSite($site, 'No site for pageId ' . $pageId); - $config = $site->getSolrConnectionConfiguration($language); - $solrConnection = $this->getConnectionFromConfiguration($config); - return $solrConnection; + $config = $site->getMeilisearchConnectionConfiguration($language); + $meilisearchConnection = $this->getConnectionFromConfiguration($config); + return $meilisearchConnection; } catch (InvalidArgumentException $e) { - /* @var NoSolrConnectionFoundException $noSolrConnectionException */ - $noSolrConnectionException = $this->buildNoConnectionExceptionForPageAndLanguage($pageId, $language); - throw $noSolrConnectionException; + /* @var NoMeilisearchConnectionFoundException $noMeilisearchConnectionException */ + $noMeilisearchConnectionException = $this->buildNoConnectionExceptionForPageAndLanguage($pageId, $language); + throw $noMeilisearchConnectionException; } } /** * Gets all connections found. * - * @return SolrConnection[] An array of initialized WapplerSystems\Meilisearch\System\Solr\SolrConnection connections - * @throws NoSolrConnectionFoundException + * @return MeilisearchConnection[] An array of initialized WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection connections + * @throws NoMeilisearchConnectionFoundException */ public function getAllConnections() { - $solrConnections = []; + $meilisearchConnections = []; foreach ($this->siteRepository->getAvailableSites() as $site) { - foreach ($site->getAllSolrConnectionConfigurations() as $solrConfiguration) { - $solrConnections[] = $this->getConnectionFromConfiguration($solrConfiguration); + foreach ($site->getAllMeilisearchConnectionConfigurations() as $meilisearchConfiguration) { + $meilisearchConnections[] = $this->getConnectionFromConfiguration($meilisearchConfiguration); } } - return $solrConnections; + return $meilisearchConnections; } /** * Gets all connections configured for a given site. * * @param Site $site A TYPO3 site - * @return SolrConnection[] An array of Solr connection objects (WapplerSystems\Meilisearch\System\Solr\SolrConnection) - * @throws NoSolrConnectionFoundException + * @return MeilisearchConnection[] An array of Meilisearch connection objects (WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection) + * @throws NoMeilisearchConnectionFoundException */ public function getConnectionsBySite(Site $site) { $connections = []; - foreach ($site->getAllSolrConnectionConfigurations() as $languageId => $solrConnectionConfiguration) { - $connections[$languageId] = $this->getConnectionFromConfiguration($solrConnectionConfiguration); + foreach ($site->getAllMeilisearchConnectionConfigurations() as $languageId => $meilisearchConnectionConfiguration) { + $connections[$languageId] = $this->getConnectionFromConfiguration($meilisearchConnectionConfiguration); } return $connections; @@ -220,15 +220,15 @@ class ConnectionManager implements SingletonInterface /** * @param $pageId * @param $language - * @return NoSolrConnectionFoundException + * @return NoMeilisearchConnectionFoundException */ - protected function buildNoConnectionExceptionForPageAndLanguage($pageId, $language): NoSolrConnectionFoundException + protected function buildNoConnectionExceptionForPageAndLanguage($pageId, $language): NoMeilisearchConnectionFoundException { - $message = 'Could not find a Solr connection for page [' . $pageId . '] and language [' . $language . '].'; - $noSolrConnectionException = $this->buildNoConnectionException($message); + $message = 'Could not find a Meilisearch connection for page [' . $pageId . '] and language [' . $language . '].'; + $noMeilisearchConnectionException = $this->buildNoConnectionException($message); - $noSolrConnectionException->setLanguageId($language); - return $noSolrConnectionException; + $noMeilisearchConnectionException->setLanguageId($language); + return $noMeilisearchConnectionException; } /** @@ -236,7 +236,7 @@ class ConnectionManager implements SingletonInterface * * @param Site|null $site * @param $message - * @throws NoSolrConnectionFoundException + * @throws NoMeilisearchConnectionFoundException */ protected function throwExceptionOnInvalidSite(?Site $site, string $message) { @@ -248,20 +248,27 @@ class ConnectionManager implements SingletonInterface } /** - * Build a NoSolrConnectionFoundException with the passed message. + * Build a NoMeilisearchConnectionFoundException with the passed message. * @param string $message - * @return NoSolrConnectionFoundException + * @return NoMeilisearchConnectionFoundException */ - protected function buildNoConnectionException(string $message): NoSolrConnectionFoundException + protected function buildNoConnectionException(string $message): NoMeilisearchConnectionFoundException { - /* @var NoSolrConnectionFoundException $noSolrConnectionException */ - $noSolrConnectionException = GeneralUtility::makeInstance( - NoSolrConnectionFoundException::class, + /* @var NoMeilisearchConnectionFoundException $noMeilisearchConnectionException */ + $noMeilisearchConnectionException = GeneralUtility::makeInstance( + NoMeilisearchConnectionFoundException::class, /** @scrutinizer ignore-type */ $message, /** @scrutinizer ignore-type */ 1575396474 ); - return $noSolrConnectionException; + return $noMeilisearchConnectionException; } + + + private function createClientFromArray(array $configuration) { + return new Client(($configuration['scheme'] ?? 'http') . '://'.$configuration['host'].':'.$configuration['port'], $configuration['apiKey'] ?? null, new \TYPO3\CMS\Core\Http\Client(\TYPO3\CMS\Core\Http\Client\GuzzleClientFactory::getClient())); + } + + } diff --git a/Classes/ContentObject/Classification.php b/Classes/ContentObject/Classification.php index bb82c58..e120a01 100644 --- a/Classes/ContentObject/Classification.php +++ b/Classes/ContentObject/Classification.php @@ -37,7 +37,7 @@ use TYPO3\CMS\Frontend\ContentObject\AbstractContentObject; * * keywords = SOLR_CLASSIFICATION # supports stdWrap * keywords { - * field = __solr_content # a comma separated field. instead of field you can also use "value" + * field = __meilisearch_content # a comma separated field. instead of field you can also use "value" * classes { * 1 { * patterns = smartphone, mobile, mobilephone # list of patterns that need to match to assign that class diff --git a/Classes/ContentObject/Content.php b/Classes/ContentObject/Content.php index e16e02b..98f5e6b 100644 --- a/Classes/ContentObject/Content.php +++ b/Classes/ContentObject/Content.php @@ -31,7 +31,7 @@ use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; /** * A content object (cObj) to clean a database field in a way so that it can be - * used to fill a Solr document's content field. + * used to fill a Meilisearch document's content field. * * @author Ingo Renner */ diff --git a/Classes/ContentObject/Multivalue.php b/Classes/ContentObject/Multivalue.php index f90a81f..3ec88a1 100644 --- a/Classes/ContentObject/Multivalue.php +++ b/Classes/ContentObject/Multivalue.php @@ -29,7 +29,7 @@ use TYPO3\CMS\Frontend\ContentObject\AbstractContentObject; /** * A content object (cObj) to turn comma separated strings into an array to be - * used in a multi value field in a Solr document. + * used in a multi value field in a Meilisearch document. * * Example usage: * @@ -51,7 +51,7 @@ class Multivalue extends AbstractContentObject * Executes the SOLR_MULTIVALUE content object. * * Turns a list of values into an array that can then be used to fill - * multivalued fields in a Solr document. The array is returned in + * multivalued fields in a Meilisearch document. The array is returned in * serialized form as content objects are expected to return strings. * * @inheritDoc diff --git a/Classes/Controller/AbstractBaseController.php b/Classes/Controller/AbstractBaseController.php index a0d4017..b00dd3c 100644 --- a/Classes/Controller/AbstractBaseController.php +++ b/Classes/Controller/AbstractBaseController.php @@ -17,13 +17,13 @@ namespace WapplerSystems\Meilisearch\Controller; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSetService; use WapplerSystems\Meilisearch\Domain\Search\SearchRequestBuilder; -use WapplerSystems\Meilisearch\NoSolrConnectionFoundException; +use WapplerSystems\Meilisearch\NoMeilisearchConnectionFoundException; use WapplerSystems\Meilisearch\Search; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\System\Service\ConfigurationService; -use WapplerSystems\Meilisearch\System\Configuration\ConfigurationManager as SolrConfigurationManager; +use WapplerSystems\Meilisearch\System\Configuration\ConfigurationManager as MeilisearchConfigurationManager; use WapplerSystems\Meilisearch\Util; use TYPO3\CMS\Core\TypoScript\TypoScriptService; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -56,9 +56,9 @@ abstract class AbstractBaseController extends ActionController protected $configurationManager; /** - * @var SolrConfigurationManager + * @var MeilisearchConfigurationManager */ - private $solrConfigurationManager; + private $meilisearchConfigurationManager; /** * The configuration is private if you need it please get it from the controllerContext. @@ -68,7 +68,7 @@ abstract class AbstractBaseController extends ActionController protected $typoScriptConfiguration; /** - * @var \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext + * @var \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ protected $controllerContext; @@ -115,11 +115,11 @@ abstract class AbstractBaseController extends ActionController } /** - * @param SolrConfigurationManager $configurationManager + * @param MeilisearchConfigurationManager $configurationManager */ - public function injectSolrConfigurationManager(SolrConfigurationManager $configurationManager) + public function injectMeilisearchConfigurationManager(MeilisearchConfigurationManager $configurationManager) { - $this->solrConfigurationManager = $configurationManager; + $this->meilisearchConfigurationManager = $configurationManager; } /** @@ -138,8 +138,8 @@ abstract class AbstractBaseController extends ActionController */ protected function buildControllerContext() { - /** @var $controllerContext \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext */ - $controllerContext = $this->objectManager->get(SolrControllerContext::class); + /** @var $controllerContext \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ + $controllerContext = $this->objectManager->get(MeilisearchControllerContext::class); $controllerContext->setRequest($this->request); $controllerContext->setResponse($this->response); if ($this->arguments !== null) { @@ -159,23 +159,23 @@ abstract class AbstractBaseController extends ActionController { // Reset configuration (to reset flexform overrides) if resetting is enabled if ($this->resetConfigurationBeforeInitialize) { - $this->solrConfigurationManager->reset(); + $this->meilisearchConfigurationManager->reset(); } /** @var TypoScriptService $typoScriptService */ $typoScriptService = $this->objectManager->get(TypoScriptService::class); - // Merge settings done by typoscript with solrConfiguration plugin.tx_meilisearch (obsolete when part of ext:solr) + // Merge settings done by typoscript with meilisearchConfiguration plugin.tx_meilisearch (obsolete when part of ext:meilisearch) $frameWorkConfiguration = $this->configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK); $pluginSettings = []; - foreach (['search', 'settings', 'suggest', 'statistics', 'logging', 'general', 'solr', 'view'] as $key) { + foreach (['search', 'settings', 'suggest', 'statistics', 'logging', 'general', 'meilisearch', 'view'] as $key) { if (isset($frameWorkConfiguration[$key])) { $pluginSettings[$key] = $frameWorkConfiguration[$key]; } } - $this->typoScriptConfiguration = $this->solrConfigurationManager->getTypoScriptConfiguration(); + $this->typoScriptConfiguration = $this->meilisearchConfigurationManager->getTypoScriptConfiguration(); if ($pluginSettings !== []) { - $this->typoScriptConfiguration->mergeSolrConfiguration( + $this->typoScriptConfiguration->mergeMeilisearchConfiguration( $typoScriptService->convertPlainArrayToTypoScriptArray($pluginSettings), true, false @@ -192,7 +192,7 @@ abstract class AbstractBaseController extends ActionController $this->typoScriptFrontendController = $GLOBALS['TSFE']; $this->initializeSettings(); - if ($this->actionMethodName !== 'solrNotAvailableAction') { + if ($this->actionMethodName !== 'meilisearchNotAvailableAction') { $this->initializeSearch(); } } @@ -214,23 +214,23 @@ abstract class AbstractBaseController extends ActionController } /** - * Initialize the Solr connection and + * Initialize the Meilisearch connection and * test the connection through a ping */ protected function initializeSearch() { - /** @var \WapplerSystems\Meilisearch\ConnectionManager $solrConnection */ + /** @var \WapplerSystems\Meilisearch\ConnectionManager $meilisearchConnection */ try { - $solrConnection = $this->objectManager->get(ConnectionManager::class)->getConnectionByPageId($this->typoScriptFrontendController->id, Util::getLanguageUid(), $this->typoScriptFrontendController->MP); - $search = $this->objectManager->get(Search::class, $solrConnection); + $meilisearchConnection = $this->objectManager->get(ConnectionManager::class)->getConnectionByPageId($this->typoScriptFrontendController->id, Util::getLanguageUid(), $this->typoScriptFrontendController->MP); + $search = $this->objectManager->get(Search::class, $meilisearchConnection); $this->searchService = $this->objectManager->get( SearchResultSetService::class, /** @scrutinizer ignore-type */ $this->typoScriptConfiguration, /** @scrutinizer ignore-type */ $search ); - } catch (NoSolrConnectionFoundException $e) { - $this->handleSolrUnavailable(); + } catch (NoMeilisearchConnectionFoundException $e) { + $this->handleMeilisearchUnavailable(); } } @@ -247,16 +247,16 @@ abstract class AbstractBaseController extends ActionController } /** - * Called when the solr server is unavailable. + * Called when the meilisearch server is unavailable. * * @return void */ - protected function handleSolrUnavailable() + protected function handleMeilisearchUnavailable() { if ($this->typoScriptConfiguration->getLoggingExceptions()) { - /** @var SolrLogManager $logger */ - $logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); - $logger->log(SolrLogManager::ERROR, 'Solr server is not available'); + /** @var MeilisearchLogManager $logger */ + $logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $logger->log(MeilisearchLogManager::ERROR, 'Meilisearch server is not available'); } } diff --git a/Classes/Controller/Backend/Search/AbstractModuleController.php b/Classes/Controller/Backend/Search/AbstractModuleController.php index f48f424..0f3a5b6 100644 --- a/Classes/Controller/Backend/Search/AbstractModuleController.php +++ b/Classes/Controller/Backend/Search/AbstractModuleController.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Controller\Backend\Search; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\Controller\Backend\Search; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\Domain\Site\SiteRepository; use WapplerSystems\Meilisearch\Domain\Site\Site; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection as SolrCoreConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection as MeilisearchCoreConnection; use WapplerSystems\Meilisearch\System\Mvc\Backend\Component\Exception\InvalidViewObjectNameException; use WapplerSystems\Meilisearch\System\Mvc\Backend\Service\ModuleDataStorageService; use TYPO3\CMS\Backend\Template\Components\Menu\Menu; @@ -81,9 +81,9 @@ abstract class AbstractModuleController extends ActionController protected $siteRepository; /** - * @var SolrCoreConnection + * @var MeilisearchCoreConnection */ - protected $selectedSolrCoreConnection; + protected $selectedMeilisearchCoreConnection; /** * @var Menu @@ -93,7 +93,7 @@ abstract class AbstractModuleController extends ActionController /** * @var ConnectionManager */ - protected $solrConnectionManager = null; + protected $meilisearchConnectionManager = null; /** * @var ModuleDataStorageService @@ -122,7 +122,7 @@ abstract class AbstractModuleController extends ActionController protected function initializeAction() { parent::initializeAction(); - $this->solrConnectionManager = GeneralUtility::makeInstance(ConnectionManager::class); + $this->meilisearchConnectionManager = GeneralUtility::makeInstance(ConnectionManager::class); $this->moduleDataStorageService = GeneralUtility::makeInstance(ModuleDataStorageService::class); $this->selectedPageUID = (int)GeneralUtility::_GP('id'); @@ -213,7 +213,7 @@ abstract class AbstractModuleController extends ActionController } if ($this->view instanceof NotFoundView) { - $this->initializeSelectedSolrCoreConnection(); + $this->initializeSelectedMeilisearchCoreConnection(); return; } @@ -244,8 +244,8 @@ abstract class AbstractModuleController extends ActionController $uriToRedirectTo = $this->uriBuilder->reset()->uriFor(); } - $this->initializeSelectedSolrCoreConnection(); - $cores = $this->solrConnectionManager->getConnectionsBySite($site); + $this->initializeSelectedMeilisearchCoreConnection(); + $cores = $this->meilisearchConnectionManager->getConnectionsBySite($site); foreach ($cores as $core) { $coreAdmin = $core->getAdminService(); $menuItem = $this->coreSelectorMenu->makeMenuItem(); @@ -258,7 +258,7 @@ abstract class AbstractModuleController extends ActionController ); $menuItem->setHref($uri); - if ($coreAdmin->getCorePath() == $this->selectedSolrCoreConnection->getAdminService()->getCorePath()) { + if ($coreAdmin->getCorePath() == $this->selectedMeilisearchCoreConnection->getAdminService()->getCorePath()) { $menuItem->setActive(true); } $this->coreSelectorMenu->addMenuItem($menuItem); @@ -281,48 +281,48 @@ abstract class AbstractModuleController extends ActionController $moduleData->setCore($corePath); $this->moduleDataStorageService->persistModuleData($moduleData); - $message = LocalizationUtility::translate('coreselector_switched_successfully', 'solr', [$corePath]); + $message = LocalizationUtility::translate('coreselector_switched_successfully', 'meilisearch', [$corePath]); $this->addFlashMessage($message); $this->redirectToUri($uriToRedirectTo); } /** - * Initializes the solr core connection considerately to the components state. + * Initializes the meilisearch core connection considerately to the components state. * Uses and persists default core connection if persisted core in Site does not exist. * */ - private function initializeSelectedSolrCoreConnection() + private function initializeSelectedMeilisearchCoreConnection() { $moduleData = $this->moduleDataStorageService->loadModuleData(); - $solrCoreConnections = $this->solrConnectionManager->getConnectionsBySite($this->selectedSite); - $currentSolrCorePath = $moduleData->getCore(); - if (empty($currentSolrCorePath)) { - $this->initializeFirstAvailableSolrCoreConnection($solrCoreConnections, $moduleData); + $meilisearchCoreConnections = $this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite); + $currentMeilisearchCorePath = $moduleData->getCore(); + if (empty($currentMeilisearchCorePath)) { + $this->initializeFirstAvailableMeilisearchCoreConnection($meilisearchCoreConnections, $moduleData); return; } - foreach ($solrCoreConnections as $solrCoreConnection) { - if ($solrCoreConnection->getAdminService()->getCorePath() == $currentSolrCorePath) { - $this->selectedSolrCoreConnection = $solrCoreConnection; + foreach ($meilisearchCoreConnections as $meilisearchCoreConnection) { + if ($meilisearchCoreConnection->getAdminService()->getCorePath() == $currentMeilisearchCorePath) { + $this->selectedMeilisearchCoreConnection = $meilisearchCoreConnection; } } - if (!$this->selectedSolrCoreConnection instanceof SolrCoreConnection && count($solrCoreConnections) > 0) { - $this->initializeFirstAvailableSolrCoreConnection($solrCoreConnections, $moduleData); - $message = LocalizationUtility::translate('coreselector_switched_to_default_core', 'solr', [$currentSolrCorePath, $this->selectedSite->getLabel(), $this->selectedSolrCoreConnection->getAdminService()->getCorePath()]); + if (!$this->selectedMeilisearchCoreConnection instanceof MeilisearchCoreConnection && count($meilisearchCoreConnections) > 0) { + $this->initializeFirstAvailableMeilisearchCoreConnection($meilisearchCoreConnections, $moduleData); + $message = LocalizationUtility::translate('coreselector_switched_to_default_core', 'meilisearch', [$currentMeilisearchCorePath, $this->selectedSite->getLabel(), $this->selectedMeilisearchCoreConnection->getAdminService()->getCorePath()]); $this->addFlashMessage($message, '', AbstractMessage::NOTICE); } } /** - * @param SolrCoreConnection[] $solrCoreConnections + * @param MeilisearchCoreConnection[] $meilisearchCoreConnections */ - private function initializeFirstAvailableSolrCoreConnection(array $solrCoreConnections, $moduleData) + private function initializeFirstAvailableMeilisearchCoreConnection(array $meilisearchCoreConnections, $moduleData) { - if (empty($solrCoreConnections)) { + if (empty($meilisearchCoreConnections)) { return; } - $this->selectedSolrCoreConnection = $solrCoreConnections[0]; - $moduleData->setCore($this->selectedSolrCoreConnection->getAdminService()->getCorePath()); + $this->selectedMeilisearchCoreConnection = $meilisearchCoreConnections[0]; + $moduleData->setCore($this->selectedMeilisearchCoreConnection->getAdminService()->getCorePath()); $this->moduleDataStorageService->persistModuleData($moduleData); } } diff --git a/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php b/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php index e70b028..f9329b8 100644 --- a/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php +++ b/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Controller\Backend\Search; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -60,13 +60,13 @@ class CoreOptimizationModuleController extends AbstractModuleController */ public function indexAction() { - if ($this->selectedSolrCoreConnection === null) { + if ($this->selectedMeilisearchCoreConnection === null) { $this->view->assign('can_not_proceed', true); return; } $synonyms = []; - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $rawSynonyms = $coreAdmin->getSynonyms(); foreach ($rawSynonyms as $baseWord => $synonymList) { $synonyms[$baseWord] = implode(', ', $synonymList); @@ -100,7 +100,7 @@ class CoreOptimizationModuleController extends AbstractModuleController $baseWord = mb_strtolower($baseWord); $synonyms = mb_strtolower($synonyms); - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); if ($overrideExisting && $coreAdmin->getSynonyms($baseWord)) { $coreAdmin->deleteSynonym($baseWord); } @@ -121,7 +121,7 @@ class CoreOptimizationModuleController extends AbstractModuleController */ public function exportStopWordsAction($fileFormat = 'txt') { - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $this->exportFile( implode(PHP_EOL, $coreAdmin->getStopWords()), 'stopwords', @@ -137,7 +137,7 @@ class CoreOptimizationModuleController extends AbstractModuleController */ public function exportSynonymsAction($fileFormat = 'txt') { - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $synonyms = $coreAdmin->getSynonyms(); return $this->exportFile(ManagedResourcesUtility::exportSynonymsToTxt($synonyms), 'synonyms', $fileFormat); } @@ -157,7 +157,7 @@ class CoreOptimizationModuleController extends AbstractModuleController $fileLines = ManagedResourcesUtility::importSynonymsFromPlainTextContents($synonymFileUpload); $synonymCount = 0; - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); foreach ($fileLines as $baseWord => $synonyms) { if (!isset($baseWord) || empty($synonyms)) { continue; @@ -197,7 +197,7 @@ class CoreOptimizationModuleController extends AbstractModuleController { $allSynonymsCouldBeDeleted = $this->deleteAllSynonyms(); - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $reloadResponse = $coreAdmin->reloadCore(); if ($allSynonymsCouldBeDeleted @@ -223,7 +223,7 @@ class CoreOptimizationModuleController extends AbstractModuleController */ public function deleteSynonymsAction($baseWord) { - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $deleteResponse = $coreAdmin->deleteSynonym($baseWord); $reloadResponse = $coreAdmin->reloadCore(); @@ -245,7 +245,7 @@ class CoreOptimizationModuleController extends AbstractModuleController } /** - * Saves the edited stop word list to Solr + * Saves the edited stop word list to Meilisearch * * @param string $stopWords * @param bool $replaceStopwords @@ -257,7 +257,7 @@ class CoreOptimizationModuleController extends AbstractModuleController $newStopWords = mb_strtolower($stopWords); $newStopWords = GeneralUtility::trimExplode("\n", $newStopWords, true); - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $oldStopWords = $coreAdmin->getStopWords(); if ($replaceStopwords) { @@ -292,7 +292,7 @@ class CoreOptimizationModuleController extends AbstractModuleController */ protected function exportFile($content, $type = 'synonyms', $fileExtension = 'txt') : string { - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $this->response->setHeader('Content-type', 'text/plain', true); $this->response->setHeader('Cache-control', 'public', true); @@ -322,13 +322,13 @@ class CoreOptimizationModuleController extends AbstractModuleController } /** - * Delete complete synonym list form solr + * Delete complete synonym list form meilisearch * * @return bool */ protected function deleteAllSynonyms() : bool { - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); $synonyms = $coreAdmin->getSynonyms(); $allSynonymsCouldBeDeleted = true; @@ -347,7 +347,7 @@ class CoreOptimizationModuleController extends AbstractModuleController protected function removeStopsWordsFromIndex($stopwordsToRemove) : bool { $wordsRemoved = true; - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); foreach ($stopwordsToRemove as $word) { $response = $coreAdmin->deleteStopWord($word); @@ -373,7 +373,7 @@ class CoreOptimizationModuleController extends AbstractModuleController */ protected function deleteExistingSynonym($overrideExisting, $deleteSynonymsBefore, $baseWord) { - $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); + $coreAdmin = $this->selectedMeilisearchCoreConnection->getAdminService(); if (!$deleteSynonymsBefore && $overrideExisting && diff --git a/Classes/Controller/Backend/Search/IndexAdministrationModuleController.php b/Classes/Controller/Backend/Search/IndexAdministrationModuleController.php index cf802bb..5aec3dc 100644 --- a/Classes/Controller/Backend/Search/IndexAdministrationModuleController.php +++ b/Classes/Controller/Backend/Search/IndexAdministrationModuleController.php @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\Controller\Backend\Search; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\IndexQueue\Queue; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use WapplerSystems\Meilisearch\Util; use TYPO3\CMS\Backend\Routing\UriBuilder as BackendUriBuilder; use TYPO3\CMS\Core\Messaging\FlashMessage; @@ -50,14 +50,14 @@ class IndexAdministrationModuleController extends AbstractModuleController /** * @var ConnectionManager */ - protected $solrConnectionManager = null; + protected $meilisearchConnectionManager = null; /** - * @param ConnectionManager $solrConnectionManager + * @param ConnectionManager $meilisearchConnectionManager */ - public function setSolrConnectionManager(ConnectionManager $solrConnectionManager) + public function setMeilisearchConnectionManager(ConnectionManager $meilisearchConnectionManager) { - $this->solrConnectionManager = $solrConnectionManager; + $this->meilisearchConnectionManager = $meilisearchConnectionManager; } /** @@ -67,7 +67,7 @@ class IndexAdministrationModuleController extends AbstractModuleController { parent::initializeAction(); $this->indexQueue = GeneralUtility::makeInstance(Queue::class); - $this->solrConnectionManager = GeneralUtility::makeInstance(ConnectionManager::class); + $this->meilisearchConnectionManager = GeneralUtility::makeInstance(ConnectionManager::class); } /** @@ -77,7 +77,7 @@ class IndexAdministrationModuleController extends AbstractModuleController */ public function indexAction() { - if ($this->selectedSite === null || empty($this->solrConnectionManager->getConnectionsBySite($this->selectedSite))) { + if ($this->selectedSite === null || empty($this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite))) { $this->view->assign('can_not_proceed', true); } } @@ -93,18 +93,18 @@ class IndexAdministrationModuleController extends AbstractModuleController try { $affectedCores = []; - $solrServers = $this->solrConnectionManager->getConnectionsBySite($this->selectedSite); - foreach ($solrServers as $solrServer) { - $writeService = $solrServer->getWriteService(); - /* @var $solrServer SolrConnection */ + $meilisearchServers = $this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite); + foreach ($meilisearchServers as $meilisearchServer) { + $writeService = $meilisearchServer->getWriteService(); + /* @var $meilisearchServer MeilisearchConnection */ $writeService->deleteByQuery('siteHash:' . $siteHash); $writeService->commit(false, false, false); $affectedCores[] = $writeService->getPrimaryEndpoint()->getCore(); } - $message = LocalizationUtility::translate('solr.backend.index_administration.index_emptied_all', 'Solr', [$this->selectedSite->getLabel(), implode(', ', $affectedCores)]); + $message = LocalizationUtility::translate('meilisearch.backend.index_administration.index_emptied_all', 'Meilisearch', [$this->selectedSite->getLabel(), implode(', ', $affectedCores)]); $this->addFlashMessage($message); } catch (\Exception $e) { - $this->addFlashMessage(LocalizationUtility::translate('solr.backend.index_administration.error.on_empty_index', 'Solr', [$e->__toString()]), '', FlashMessage::ERROR); + $this->addFlashMessage(LocalizationUtility::translate('meilisearch.backend.index_administration.error.on_empty_index', 'Meilisearch', [$e->__toString()]), '', FlashMessage::ERROR); } $this->redirect('index'); @@ -119,14 +119,14 @@ class IndexAdministrationModuleController extends AbstractModuleController { $this->indexQueue->deleteItemsBySite($this->selectedSite); $this->addFlashMessage( - LocalizationUtility::translate('solr.backend.index_administration.success.queue_emptied', 'Solr', + LocalizationUtility::translate('meilisearch.backend.index_administration.success.queue_emptied', 'Meilisearch', [$this->selectedSite->getLabel()]) ); $this->redirectToReferrerModule(); } /** - * Reloads the site's Solr cores. + * Reloads the site's Meilisearch cores. * * @return void */ @@ -134,11 +134,11 @@ class IndexAdministrationModuleController extends AbstractModuleController { $coresReloaded = true; $reloadedCores = []; - $solrServers = $this->solrConnectionManager->getConnectionsBySite($this->selectedSite); + $meilisearchServers = $this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite); - foreach ($solrServers as $solrServer) { - /* @var $solrServer SolrConnection */ - $coreAdmin = $solrServer->getAdminService(); + foreach ($meilisearchServers as $meilisearchServer) { + /* @var $meilisearchServer MeilisearchConnection */ + $coreAdmin = $meilisearchServer->getAdminService(); $coreReloaded = $coreAdmin->reloadCore()->getHttpStatus() === 200; $coreName = $coreAdmin->getPrimaryEndpoint()->getCore(); @@ -188,7 +188,7 @@ class IndexAdministrationModuleController extends AbstractModuleController $backendUriBuilder = GeneralUtility::makeInstance(BackendUriBuilder::class); $parameters = ['id' => $this->selectedPageUID]; - $referringUri = $backendUriBuilder->buildUriFromRoute('searchbackend_SolrIndexqueue', $parameters); + $referringUri = $backendUriBuilder->buildUriFromRoute('searchbackend_MeilisearchIndexqueue', $parameters); $this->redirectToUri($referringUri); } diff --git a/Classes/Controller/Backend/Search/IndexQueueModuleController.php b/Classes/Controller/Backend/Search/IndexQueueModuleController.php index e5008ba..ce79572 100644 --- a/Classes/Controller/Backend/Search/IndexQueueModuleController.php +++ b/Classes/Controller/Backend/Search/IndexQueueModuleController.php @@ -114,10 +114,10 @@ class IndexQueueModuleController extends AbstractModuleController */ protected function canQueueSelectedSite() { - if ($this->selectedSite === null || empty($this->solrConnectionManager->getConnectionsBySite($this->selectedSite))) { + if ($this->selectedSite === null || empty($this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite))) { return false; } - $enabledIndexQueueConfigurationNames = $this->selectedSite->getSolrConfiguration()->getEnabledIndexQueueConfigurationNames(); + $enabledIndexQueueConfigurationNames = $this->selectedSite->getMeilisearchConfiguration()->getEnabledIndexQueueConfigurationNames(); if (empty($enabledIndexQueueConfigurationNames)) { return false; } @@ -153,11 +153,11 @@ class IndexQueueModuleController extends AbstractModuleController // initialize selected indexing configuration $initializedIndexingConfigurations = $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfigurations($this->selectedSite, $indexingConfigurationsToInitialize); } else { - $messageLabel = 'solr.backend.index_queue_module.flashmessage.initialize.no_selection'; - $titleLabel = 'solr.backend.index_queue_module.flashmessage.not_initialized.title'; + $messageLabel = 'meilisearch.backend.index_queue_module.flashmessage.initialize.no_selection'; + $titleLabel = 'meilisearch.backend.index_queue_module.flashmessage.not_initialized.title'; $this->addFlashMessage( - LocalizationUtility::translate($messageLabel, 'Solr'), - LocalizationUtility::translate($titleLabel, 'Solr'), + LocalizationUtility::translate($messageLabel, 'Meilisearch'), + LocalizationUtility::translate($titleLabel, 'Meilisearch'), FlashMessage::WARNING ); } @@ -168,11 +168,11 @@ class IndexQueueModuleController extends AbstractModuleController } if (!empty($initializedIndexingConfigurations)) { - $messageLabel = 'solr.backend.index_queue_module.flashmessage.initialize.success'; - $titleLabel = 'solr.backend.index_queue_module.flashmessage.initialize.title'; + $messageLabel = 'meilisearch.backend.index_queue_module.flashmessage.initialize.success'; + $titleLabel = 'meilisearch.backend.index_queue_module.flashmessage.initialize.title'; $this->addFlashMessage( - LocalizationUtility::translate($messageLabel, 'Solr', [implode(', ', $messagesForConfigurations)]), - LocalizationUtility::translate($titleLabel, 'Solr'), + LocalizationUtility::translate($messageLabel, 'Meilisearch', [implode(', ', $messagesForConfigurations)]), + LocalizationUtility::translate($titleLabel, 'Meilisearch'), FlashMessage::OK ); } @@ -189,10 +189,10 @@ class IndexQueueModuleController extends AbstractModuleController { $resetResult = $this->indexQueue->resetAllErrors(); - $label = 'solr.backend.index_queue_module.flashmessage.success.reset_errors'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.success.reset_errors'; $severity = FlashMessage::OK; if (!$resetResult) { - $label = 'solr.backend.index_queue_module.flashmessage.error.reset_errors'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.error.reset_errors'; $severity = FlashMessage::ERROR; } @@ -211,12 +211,12 @@ class IndexQueueModuleController extends AbstractModuleController */ public function requeueDocumentAction(string $type, int $uid) { - $label = 'solr.backend.index_queue_module.flashmessage.error.single_item_not_requeued'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.error.single_item_not_requeued'; $severity = FlashMessage::ERROR; $updateCount = $this->indexQueue->updateItem($type, $uid, time()); if ($updateCount > 0) { - $label = 'solr.backend.index_queue_module.flashmessage.success.single_item_was_requeued'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.success.single_item_was_requeued'; $severity = FlashMessage::OK; } @@ -235,7 +235,7 @@ class IndexQueueModuleController extends AbstractModuleController { if (is_null($indexQueueItemId)) { // add a flash message and quit - $label = 'solr.backend.index_queue_module.flashmessage.error.no_queue_item_for_queue_error'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.error.no_queue_item_for_queue_error'; $severity = FlashMessage::ERROR; $this->addIndexQueueFlashMessage($label, $severity); @@ -258,16 +258,16 @@ class IndexQueueModuleController extends AbstractModuleController $indexService = GeneralUtility::makeInstance(IndexService::class, /** @scrutinizer ignore-type */ $this->selectedSite); $indexWithoutErrors = $indexService->indexItems(10); - $label = 'solr.backend.index_queue_module.flashmessage.success.index_manual'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.success.index_manual'; $severity = FlashMessage::OK; if (!$indexWithoutErrors) { - $label = 'solr.backend.index_queue_module.flashmessage.error.index_manual'; + $label = 'meilisearch.backend.index_queue_module.flashmessage.error.index_manual'; $severity = FlashMessage::ERROR; } $this->addFlashMessage( - LocalizationUtility::translate($label, 'Solr'), - LocalizationUtility::translate('solr.backend.index_queue_module.flashmessage.index_manual', 'Solr'), + LocalizationUtility::translate($label, 'Meilisearch'), + LocalizationUtility::translate('meilisearch.backend.index_queue_module.flashmessage.index_manual', 'Meilisearch'), $severity ); @@ -282,6 +282,6 @@ class IndexQueueModuleController extends AbstractModuleController */ protected function addIndexQueueFlashMessage($label, $severity) { - $this->addFlashMessage(LocalizationUtility::translate($label, 'Solr'), LocalizationUtility::translate('solr.backend.index_queue_module.flashmessage.title', 'Solr'), $severity); + $this->addFlashMessage(LocalizationUtility::translate($label, 'Meilisearch'), LocalizationUtility::translate('meilisearch.backend.index_queue_module.flashmessage.title', 'Meilisearch'), $severity); } } diff --git a/Classes/Controller/Backend/Search/InfoModuleController.php b/Classes/Controller/Backend/Search/InfoModuleController.php index 1131946..b6cbb57 100644 --- a/Classes/Controller/Backend/Search/InfoModuleController.php +++ b/Classes/Controller/Backend/Search/InfoModuleController.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Controller\Backend\Search; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -27,8 +27,8 @@ namespace WapplerSystems\Meilisearch\Controller\Backend\Search; use WapplerSystems\Meilisearch\Api; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\Domain\Search\Statistics\StatisticsRepository; -use WapplerSystems\Meilisearch\Domain\Search\ApacheSolrDocument\Repository; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\Domain\Search\ApacheMeilisearchDocument\Repository; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; use WapplerSystems\Meilisearch\System\Validator\Path; use TYPO3\CMS\Backend\Template\ModuleTemplate; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -46,12 +46,12 @@ class InfoModuleController extends AbstractModuleController /** * @var ConnectionManager */ - protected $solrConnectionManager; + protected $meilisearchConnectionManager; /** * @var Repository */ - protected $apacheSolrDocumentRepository; + protected $apacheMeilisearchDocumentRepository; /** * Initializes the controller before invoking an action method. @@ -59,8 +59,8 @@ class InfoModuleController extends AbstractModuleController protected function initializeAction() { parent::initializeAction(); - $this->solrConnectionManager = GeneralUtility::makeInstance(ConnectionManager::class); - $this->apacheSolrDocumentRepository = GeneralUtility::makeInstance(Repository::class); + $this->meilisearchConnectionManager = GeneralUtility::makeInstance(ConnectionManager::class); + //$this->apacheMeilisearchDocumentRepository = GeneralUtility::makeInstance(Repository::class); } /** @@ -80,7 +80,7 @@ class InfoModuleController extends AbstractModuleController } /** - * Index action, shows an overview of the state of the Solr index + * Index action, shows an overview of the state of the Meilisearch index * * @return void */ @@ -106,12 +106,12 @@ class InfoModuleController extends AbstractModuleController */ public function documentsDetailsAction(string $type, int $uid, int $pageId, int $languageUid) { - $documents = $this->apacheSolrDocumentRepository->findByTypeAndPidAndUidAndLanguageId($type, $uid, $pageId, $languageUid); + $documents = $this->apacheMeilisearchDocumentRepository->findByTypeAndPidAndUidAndLanguageId($type, $uid, $pageId, $languageUid); $this->view->assign('documents', $documents); } /** - * Checks whether the configured Solr server can be reached and provides a + * Checks whether the configured Meilisearch server can be reached and provides a * flash message according to the result of the check. * * @return void @@ -124,7 +124,7 @@ class InfoModuleController extends AbstractModuleController /* @var Path $path */ $path = GeneralUtility::makeInstance(Path::class); - $connections = $this->solrConnectionManager->getConnectionsBySite($this->selectedSite); + $connections = $this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite); if (empty($connections)) { $this->view->assign('can_not_proceed', true); @@ -141,7 +141,7 @@ class InfoModuleController extends AbstractModuleController $missingHosts[] = $coreUrl; } - if (!$path->isValidSolrPath($coreAdmin->getCorePath())) { + if (!$path->isValidMeilisearchPath($coreAdmin->getCorePath())) { $invalidPaths[] = $coreAdmin->getCorePath(); } } @@ -156,7 +156,7 @@ class InfoModuleController extends AbstractModuleController } /** - * Index action, shows an overview of the state of the Solr index + * Index action, shows an overview of the state of the Meilisearch index * * @return void */ @@ -204,9 +204,9 @@ class InfoModuleController extends AbstractModuleController { $indexFieldsInfoByCorePaths = []; - $solrCoreConnections = $this->solrConnectionManager->getConnectionsBySite($this->selectedSite); - foreach ($solrCoreConnections as $solrCoreConnection) { - $coreAdmin = $solrCoreConnection->getAdminService(); + $meilisearchCoreConnections = $this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite); + foreach ($meilisearchCoreConnections as $meilisearchCoreConnection) { + $coreAdmin = $meilisearchCoreConnection->getAdminService(); $indexFieldsInfo = [ 'corePath' => $coreAdmin->getCorePath() @@ -239,7 +239,7 @@ class InfoModuleController extends AbstractModuleController $this->addFlashMessage( '', - 'Unable to contact Apache Solr server: ' . $this->selectedSite->getLabel() . ' ' . $coreAdmin->getCorePath(), + 'Unable to contact Meilisearch server: ' . $this->selectedSite->getLabel() . ' ' . $coreAdmin->getCorePath(), FlashMessage::ERROR ); } @@ -255,11 +255,11 @@ class InfoModuleController extends AbstractModuleController */ protected function collectIndexInspectorInfo() { - $solrCoreConnections = $this->solrConnectionManager->getConnectionsBySite($this->selectedSite); + $meilisearchCoreConnections = $this->meilisearchConnectionManager->getConnectionsBySite($this->selectedSite); $documentsByCoreAndType = []; - foreach ($solrCoreConnections as $languageId => $solrCoreConnection) { - $coreAdmin = $solrCoreConnection->getAdminService(); - $documents = $this->apacheSolrDocumentRepository->findByPageIdAndByLanguageId($this->selectedPageUID, $languageId); + foreach ($meilisearchCoreConnections as $languageId => $meilisearchCoreConnection) { + $coreAdmin = $meilisearchCoreConnection->getAdminService(); + $documents = $this->apacheMeilisearchDocumentRepository->findByPageIdAndByLanguageId($this->selectedPageUID, $languageId); $documentsByType = []; foreach ($documents as $document) { diff --git a/Classes/Controller/SearchController.php b/Classes/Controller/SearchController.php index 00f8240..3554953 100644 --- a/Classes/Controller/SearchController.php +++ b/Classes/Controller/SearchController.php @@ -15,8 +15,8 @@ namespace WapplerSystems\Meilisearch\Controller; */ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; -use WapplerSystems\Meilisearch\System\Solr\SolrUnavailableException; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchUnavailableException; use WapplerSystems\Meilisearch\Util; use TYPO3\CMS\Extbase\Mvc\View\ViewInterface; use TYPO3\CMS\Extbase\Mvc\Web\Response; @@ -115,8 +115,8 @@ class SearchController extends AbstractBaseController $values = $this->emitActionSignal(__CLASS__, __FUNCTION__, [$values]); $this->view->assignMultiple($values); - } catch (SolrUnavailableException $e) { - $this->handleSolrUnavailable(); + } catch (MeilisearchUnavailableException $e) { + $this->handleMeilisearchUnavailable(); } } @@ -161,7 +161,7 @@ class SearchController extends AbstractBaseController } /** - * This action allows to render a detailView with data from solr. + * This action allows to render a detailView with data from meilisearch. * * @param string $documentId */ @@ -170,8 +170,8 @@ class SearchController extends AbstractBaseController try { $document = $this->searchService->getDocumentById($documentId); $this->view->assign('document', $document); - } catch (SolrUnavailableException $e) { - $this->handleSolrUnavailable(); + } catch (MeilisearchUnavailableException $e) { + $this->handleMeilisearchUnavailable(); } } @@ -179,7 +179,7 @@ class SearchController extends AbstractBaseController * Rendered when no search is available. * @return string */ - public function solrNotAvailableAction() + public function meilisearchNotAvailableAction() { if ($this->response instanceof Response) { $this->response->setStatus(503); @@ -187,14 +187,14 @@ class SearchController extends AbstractBaseController } /** - * Called when the solr server is unavailable. + * Called when the meilisearch server is unavailable. * * @return void */ - protected function handleSolrUnavailable() + protected function handleMeilisearchUnavailable() { - parent::handleSolrUnavailable(); - $this->forward('solrNotAvailable'); + parent::handleMeilisearchUnavailable(); + $this->forward('meilisearchNotAvailable'); } /** diff --git a/Classes/Controller/SuggestController.php b/Classes/Controller/SuggestController.php index a67d4ec..308d252 100644 --- a/Classes/Controller/SuggestController.php +++ b/Classes/Controller/SuggestController.php @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\Controller; ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Search\Suggest\SuggestService; -use WapplerSystems\Meilisearch\System\Solr\SolrUnavailableException; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchUnavailableException; use WapplerSystems\Meilisearch\Util; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -66,16 +66,14 @@ class SuggestController extends AbstractBaseController $searchRequest = $this->getSearchRequestBuilder()->buildForSuggest($arguments, $rawQuery, $pageId, $languageId); $result = $suggestService->getSuggestions($searchRequest, $additionalFilters); - } catch (SolrUnavailableException $e) { - $this->handleSolrUnavailable(); + } catch (MeilisearchUnavailableException $e) { + $this->handleMeilisearchUnavailable(); $result = ['status' => false]; } if ($callback) { return htmlspecialchars($callback) . '(' . json_encode($result) . ')'; } - else { - return json_encode($result); - } + return json_encode($result); } } diff --git a/Classes/Domain/Index/Classification/Classification.php b/Classes/Domain/Index/Classification/Classification.php index 5f9d0b8..fdedf2e 100644 --- a/Classes/Domain/Index/Classification/Classification.php +++ b/Classes/Domain/Index/Classification/Classification.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Classification; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/Domain/Index/Classification/ClassificationService.php b/Classes/Domain/Index/Classification/ClassificationService.php index cb6896f..3a5f0d1 100644 --- a/Classes/Domain/Index/Classification/ClassificationService.php +++ b/Classes/Domain/Index/Classification/ClassificationService.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Classification; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/Domain/Index/IndexService.php b/Classes/Domain/Index/IndexService.php index 8fd286c..8e5e9bc 100644 --- a/Classes/Domain/Index/IndexService.php +++ b/Classes/Domain/Index/IndexService.php @@ -31,7 +31,7 @@ use WapplerSystems\Meilisearch\IndexQueue\Item; use WapplerSystems\Meilisearch\IndexQueue\Queue; use WapplerSystems\Meilisearch\Domain\Site\Site; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\Task\IndexQueueWorkerTask; use Solarium\Exception\HttpException; use TYPO3\CMS\Backend\Utility\BackendUtility; @@ -71,7 +71,7 @@ class IndexService protected $signalSlotDispatcher; /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -80,14 +80,14 @@ class IndexService * @param Site $site * @param Queue|null $queue * @param Dispatcher|null $dispatcher - * @param SolrLogManager|null $solrLogManager + * @param MeilisearchLogManager|null $meilisearchLogManager */ - public function __construct(Site $site, Queue $queue = null, Dispatcher $dispatcher = null, SolrLogManager $solrLogManager = null) + public function __construct(Site $site, Queue $queue = null, Dispatcher $dispatcher = null, MeilisearchLogManager $meilisearchLogManager = null) { $this->site = $site; $this->indexQueue = $queue ?? GeneralUtility::makeInstance(Queue::class); $this->signalSlotDispatcher = $dispatcher ?? GeneralUtility::makeInstance(Dispatcher::class); - $this->logger = $solrLogManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = $meilisearchLogManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); } /** @@ -116,7 +116,7 @@ class IndexService { $errors = 0; $indexRunId = uniqid(); - $configurationToUse = $this->site->getSolrConfiguration(); + $configurationToUse = $this->site->getMeilisearchConfiguration(); $enableCommitsSetting = $configurationToUse->getEnableCommits(); // get items to index @@ -140,10 +140,10 @@ class IndexService $this->emitSignal('afterIndexItems', [$itemsToIndex, $this->getContextTask(), $indexRunId]); if ($enableCommitsSetting && count($itemsToIndex) > 0) { - $solrServers = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionsBySite($this->site); - foreach ($solrServers as $solrServer) { + $meilisearchServers = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionsBySite($this->site); + foreach ($meilisearchServers as $meilisearchServer) { try { - $solrServer->getWriteService()->commit(false, false, false); + $meilisearchServer->getWriteService()->commit(false, false, false); } catch (HttpException $e) { $errors++; } @@ -165,7 +165,7 @@ class IndexService $data = ['code' => $e->getCode(), 'message' => $e->getMessage(), 'trace' => $e->getTraceAsString(), 'item' => (array)$itemToIndex]; $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, $message, $data ); diff --git a/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/AbstractUriStrategy.php b/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/AbstractUriStrategy.php index 6a008a0..d124eb7 100644 --- a/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/AbstractUriStrategy.php +++ b/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/AbstractUriStrategy.php @@ -30,27 +30,27 @@ namespace WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriBuilder; use WapplerSystems\Meilisearch\IndexQueue\Item; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerDataUrlModifier; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\System\Url\UrlHelper; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Implementations of this class are able to build an indexing url for solr page indexing. + * Implementations of this class are able to build an indexing url for meilisearch page indexing. */ abstract class AbstractUriStrategy { /** - * @var SolrLogManager|null|object + * @var MeilisearchLogManager|null|object */ protected $logger; /** * AbstractUriStrategy constructor. - * @param SolrLogManager|null $logger + * @param MeilisearchLogManager|null $logger */ - public function __construct(SolrLogManager $logger = null) + public function __construct(MeilisearchLogManager $logger = null) { - $this->logger = $logger ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = $logger ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); } /** @@ -100,7 +100,7 @@ abstract class AbstractUriStrategy if (!GeneralUtility::isValidUrl($dataUrl)) { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Could not create a valid URL to get frontend data while trying to index a page.', [ 'item' => (array)$item, @@ -140,13 +140,13 @@ abstract class AbstractUriStrategy */ protected function applyDataUrlModifier(Item $item, int $language, $dataUrl, UrlHelper $urlHelper):string { - if (empty($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueuePageIndexer']['dataUrlModifier'])) { + if (empty($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueuePageIndexer']['dataUrlModifier'])) { return $dataUrl; } - $dataUrlModifier = GeneralUtility::makeInstance($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueuePageIndexer']['dataUrlModifier']); + $dataUrlModifier = GeneralUtility::makeInstance($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueuePageIndexer']['dataUrlModifier']); if (!$dataUrlModifier instanceof PageIndexerDataUrlModifier) { - throw new \RuntimeException($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueuePageIndexer']['dataUrlModifier'] . ' is not an implementation of WapplerSystems\Meilisearch\IndexQueue\PageIndexerDataUrlModifier', 1290523345); + throw new \RuntimeException($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueuePageIndexer']['dataUrlModifier'] . ' is not an implementation of WapplerSystems\Meilisearch\IndexQueue\PageIndexerDataUrlModifier', 1290523345); } return $dataUrlModifier->modifyDataUrl($dataUrl, diff --git a/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/TYPO3SiteStrategy.php b/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/TYPO3SiteStrategy.php index 6882ee8..805399f 100644 --- a/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/TYPO3SiteStrategy.php +++ b/Classes/Domain/Index/PageIndexer/Helper/UriBuilder/TYPO3SiteStrategy.php @@ -29,7 +29,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriBuilder; ***************************************************************/ use WapplerSystems\Meilisearch\IndexQueue\Item; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Core\Exception\SiteNotFoundException; use TYPO3\CMS\Core\Routing\InvalidRouteArgumentsException; use TYPO3\CMS\Core\Site\SiteFinder; @@ -49,10 +49,10 @@ class TYPO3SiteStrategy extends AbstractUriStrategy /** * TYPO3SiteStrategy constructor. - * @param SolrLogManager|null $logger + * @param MeilisearchLogManager|null $logger * @param SiteFinder|null $siteFinder */ - public function __construct(SolrLogManager $logger = null, SiteFinder $siteFinder = null) + public function __construct(MeilisearchLogManager $logger = null, SiteFinder $siteFinder = null) { parent::__construct($logger); $this->siteFinder = $siteFinder ?? GeneralUtility::makeInstance(SiteFinder::class); diff --git a/Classes/Domain/Index/PageIndexer/Helper/UriStrategyFactory.php b/Classes/Domain/Index/PageIndexer/Helper/UriStrategyFactory.php index b467f89..be8ad8d 100644 --- a/Classes/Domain/Index/PageIndexer/Helper/UriStrategyFactory.php +++ b/Classes/Domain/Index/PageIndexer/Helper/UriStrategyFactory.php @@ -40,7 +40,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; * This can be: * * A TYPO3 site managed with site management * * A TYPO3 site without site management where the url is build by EXT:meilisearch with L and id param and information from the domain - * record or solr specific configuration. + * record or meilisearch specific configuration. */ class UriStrategyFactory { diff --git a/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php b/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php index 110f0e7..2f34a59 100644 --- a/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php +++ b/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php @@ -28,12 +28,12 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Queue\GarbageRemover; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\GarbageCollectorPostProcessor; use WapplerSystems\Meilisearch\IndexQueue\Queue; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use TYPO3\CMS\Core\Utility\GeneralUtility; /** * An implementation ob a garbage remover strategy is responsible to remove all garbage from the index queue and - * the solr server for a certain table and uid combination. + * the meilisearch server for a certain table and uid combination. */ abstract class AbstractStrategy { @@ -74,7 +74,7 @@ abstract class AbstractStrategy /** * A implementation of the GarbageCollection strategy is responsible to remove the garbage from - * the indexqueue and from the solr server. + * the indexqueue and from the meilisearch server. * * @param string $table * @param int $uid @@ -83,24 +83,24 @@ abstract class AbstractStrategy abstract protected function removeGarbageOfByStrategy($table, $uid); /** - * Deletes a document from solr and from the index queue. + * Deletes a document from meilisearch and from the index queue. * * @param string $table * @param integer $uid */ - protected function deleteInSolrAndRemoveFromIndexQueue($table, $uid) + protected function deleteInMeilisearchAndRemoveFromIndexQueue($table, $uid) { $this->deleteIndexDocuments($table, $uid); $this->queue->deleteItem($table, $uid); } /** - * Deletes a document from solr and updates the item in the index queue (e.g. on page content updates). + * Deletes a document from meilisearch and updates the item in the index queue (e.g. on page content updates). * * @param string $table * @param integer $uid */ - protected function deleteInSolrAndUpdateIndexQueue($table, $uid) + protected function deleteInMeilisearchAndUpdateIndexQueue($table, $uid) { $this->deleteIndexDocuments($table, $uid); $this->queue->updateItem($table, $uid); @@ -118,32 +118,32 @@ abstract class AbstractStrategy $indexQueueItems = $this->queue->getItems($table, $uid); foreach ($indexQueueItems as $indexQueueItem) { $site = $indexQueueItem->getSite(); - $enableCommitsSetting = $site->getSolrConfiguration()->getEnableCommits(); + $enableCommitsSetting = $site->getMeilisearchConfiguration()->getEnableCommits(); $siteHash = $site->getSiteHash(); // a site can have multiple connections (cores / languages) - $solrConnections = $this->connectionManager->getConnectionsBySite($site); + $meilisearchConnections = $this->connectionManager->getConnectionsBySite($site); if ($language > 0) { - $solrConnections = [$language => $solrConnections[$language]]; + $meilisearchConnections = [$language => $meilisearchConnections[$language]]; } - $this->deleteRecordInAllSolrConnections($table, $uid, $solrConnections, $siteHash, $enableCommitsSetting); + $this->deleteRecordInAllMeilisearchConnections($table, $uid, $meilisearchConnections, $siteHash, $enableCommitsSetting); } } /** - * Deletes the record in all solr connections from that site. + * Deletes the record in all meilisearch connections from that site. * * @param string $table * @param int $uid - * @param SolrConnection[] $solrConnections + * @param MeilisearchConnection[] $meilisearchConnections * @param string $siteHash * @param boolean $enableCommitsSetting */ - protected function deleteRecordInAllSolrConnections($table, $uid, $solrConnections, $siteHash, $enableCommitsSetting) + protected function deleteRecordInAllMeilisearchConnections($table, $uid, $meilisearchConnections, $siteHash, $enableCommitsSetting) { - foreach ($solrConnections as $solr) { - $solr->getWriteService()->deleteByQuery('type:' . $table . ' AND uid:' . (int)$uid . ' AND siteHash:' . $siteHash); + foreach ($meilisearchConnections as $meilisearch) { + $meilisearch->getWriteService()->deleteByQuery('type:' . $table . ' AND uid:' . (int)$uid . ' AND siteHash:' . $siteHash); if ($enableCommitsSetting) { - $solr->getWriteService()->commit(false, false); + $meilisearch->getWriteService()->commit(false, false); } } } @@ -156,11 +156,11 @@ abstract class AbstractStrategy */ protected function callPostProcessGarbageCollectorHook($table, $uid) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessGarbageCollector'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessGarbageCollector'])) { return; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessGarbageCollector'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessGarbageCollector'] as $classReference) { $garbageCollectorPostProcessor = GeneralUtility::makeInstance($classReference); if ($garbageCollectorPostProcessor instanceof GarbageCollectorPostProcessor) { diff --git a/Classes/Domain/Index/Queue/GarbageRemover/PageStrategy.php b/Classes/Domain/Index/Queue/GarbageRemover/PageStrategy.php index 3217230..dc09fe9 100644 --- a/Classes/Domain/Index/Queue/GarbageRemover/PageStrategy.php +++ b/Classes/Domain/Index/Queue/GarbageRemover/PageStrategy.php @@ -52,7 +52,7 @@ class PageStrategy extends AbstractStrategy { } /** - * Determines the relevant page id for an content element update. Deletes the page from solr and requeues the + * Determines the relevant page id for an content element update. Deletes the page from meilisearch and requeues the * page for a reindex. * * @param int $ttContentUid @@ -60,7 +60,7 @@ class PageStrategy extends AbstractStrategy { protected function collectPageGarbageByContentChange($ttContentUid) { $contentElement = BackendUtility::getRecord('tt_content', $ttContentUid, 'uid, pid', '', false); - $this->deleteInSolrAndUpdateIndexQueue('pages', $contentElement['pid']); + $this->deleteInMeilisearchAndUpdateIndexQueue('pages', $contentElement['pid']); } /** @@ -74,7 +74,7 @@ class PageStrategy extends AbstractStrategy { if (!empty($pageOverlay['l10n_parent']) && intval($pageOverlay['l10n_parent']) !== 0) { $this->deleteIndexDocuments('pages', (int)$pageOverlay['l10n_parent'], (int)$pageOverlay['sys_language_uid']); } else { - $this->deleteInSolrAndRemoveFromIndexQueue('pages', $uid); + $this->deleteInMeilisearchAndRemoveFromIndexQueue('pages', $uid); } } } diff --git a/Classes/Domain/Index/Queue/GarbageRemover/RecordStrategy.php b/Classes/Domain/Index/Queue/GarbageRemover/RecordStrategy.php index 584b043..72a47a0 100644 --- a/Classes/Domain/Index/Queue/GarbageRemover/RecordStrategy.php +++ b/Classes/Domain/Index/Queue/GarbageRemover/RecordStrategy.php @@ -38,6 +38,6 @@ class RecordStrategy extends AbstractStrategy { */ protected function removeGarbageOfByStrategy($table, $uid) { - $this->deleteInSolrAndRemoveFromIndexQueue($table, $uid); + $this->deleteInMeilisearchAndRemoveFromIndexQueue($table, $uid); } } diff --git a/Classes/Domain/Index/Queue/IndexQueueIndexingPropertyRepository.php b/Classes/Domain/Index/Queue/IndexQueueIndexingPropertyRepository.php index 30b8791..41a4229 100644 --- a/Classes/Domain/Index/Queue/IndexQueueIndexingPropertyRepository.php +++ b/Classes/Domain/Index/Queue/IndexQueueIndexingPropertyRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Queue; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/Domain/Index/Queue/QueueInitializationService.php b/Classes/Domain/Index/Queue/QueueInitializationService.php index dc4993f..a15bc05 100644 --- a/Classes/Domain/Index/Queue/QueueInitializationService.php +++ b/Classes/Domain/Index/Queue/QueueInitializationService.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Queue; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -97,16 +97,16 @@ class QueueInitializationService { $initializationStatus = []; $hasWildcardConfiguration = in_array('*', $indexingConfigurationNames); - $indexingConfigurationNames = $hasWildcardConfiguration ? $site->getSolrConfiguration()->getEnabledIndexQueueConfigurationNames() : $indexingConfigurationNames; + $indexingConfigurationNames = $hasWildcardConfiguration ? $site->getMeilisearchConfiguration()->getEnabledIndexQueueConfigurationNames() : $indexingConfigurationNames; foreach ($indexingConfigurationNames as $indexingConfigurationName) { $initializationStatus[$indexingConfigurationName] = $this->applyInitialization($site, (string)$indexingConfigurationName); } - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessIndexQueueInitialization'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessIndexQueueInitialization'])) { return $initializationStatus; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessIndexQueueInitialization'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessIndexQueueInitialization'] as $classReference) { $indexQueueInitializationPostProcessor = GeneralUtility::makeInstance($classReference); if ($indexQueueInitializationPostProcessor instanceof InitializationPostProcessor) { $indexQueueInitializationPostProcessor->postProcessIndexQueueInitialization($site, $indexingConfigurationNames, $initializationStatus); @@ -131,10 +131,10 @@ class QueueInitializationService { // clear queue $this->queue->deleteItemsBySite($site, $indexingConfigurationName); - $solrConfiguration = $site->getSolrConfiguration(); - $tableToIndex = $solrConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); - $initializerClass = $solrConfiguration->getIndexQueueInitializerClassByConfigurationName($indexingConfigurationName); - $indexConfiguration = $solrConfiguration->getIndexQueueConfigurationByName($indexingConfigurationName); + $meilisearchConfiguration = $site->getMeilisearchConfiguration(); + $tableToIndex = $meilisearchConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); + $initializerClass = $meilisearchConfiguration->getIndexQueueInitializerClassByConfigurationName($indexingConfigurationName); + $indexConfiguration = $meilisearchConfiguration->getIndexQueueConfigurationByName($indexingConfigurationName); return $this->executeInitializer($site, $indexingConfigurationName, $initializerClass, $tableToIndex, $indexConfiguration); } diff --git a/Classes/Domain/Index/Queue/QueueItemRepository.php b/Classes/Domain/Index/Queue/QueueItemRepository.php index 8e63156..7153fe1 100644 --- a/Classes/Domain/Index/Queue/QueueItemRepository.php +++ b/Classes/Domain/Index/Queue/QueueItemRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Queue; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Queue; use WapplerSystems\Meilisearch\IndexQueue\Item; use WapplerSystems\Meilisearch\Domain\Site\Site; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\System\Records\AbstractRepository; use Doctrine\DBAL\DBALException; use TYPO3\CMS\Core\Database\ConnectionPool; @@ -47,18 +47,18 @@ class QueueItemRepository extends AbstractRepository protected $table = 'tx_meilisearch_indexqueue_item'; /** - * @var SolrLogManager + * @var MeilisearchLogManager */ protected $logger; /** * QueueItemRepository constructor. * - * @param SolrLogManager|null $logManager + * @param MeilisearchLogManager|null $logManager */ - public function __construct(SolrLogManager $logManager = null) + public function __construct(MeilisearchLogManager $logManager = null) { - $this->logger = $logManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = $logManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); } /** @@ -606,7 +606,7 @@ class QueueItemRepository extends AbstractRepository * * @param Site $site TYPO3 site * @param int $limit Number of items to get from the queue - * @return Item[] Items to index to the given solr server + * @return Item[] Items to index to the given meilisearch server */ public function findItemsToIndex(Site $site, int $limit = 50) : array { @@ -717,11 +717,11 @@ class QueueItemRepository extends AbstractRepository */ protected function hookPostProcessFetchRecordsForIndexQueueItem(string $table, array $uids, array &$tableRecords) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessFetchRecordsForIndexQueueItem'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessFetchRecordsForIndexQueueItem'])) { return; } $params = ['table' => $table, 'uids' => $uids, 'tableRecords' => &$tableRecords]; - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessFetchRecordsForIndexQueueItem'] as $reference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessFetchRecordsForIndexQueueItem'] as $reference) { GeneralUtility::callUserFunction($reference, $params, $this); } } @@ -745,7 +745,7 @@ class QueueItemRepository extends AbstractRepository ); } else { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Record missing for Index Queue item. Item removed.', [ $indexQueueItemRecord diff --git a/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php b/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php index 3b45c36..b8e467d 100644 --- a/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php +++ b/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php @@ -43,21 +43,21 @@ class ConfigurationAwareRecordService * * @param string $recordTable Table to read from * @param int $recordUid Id of the record - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return string|null Name of indexing configuration */ - public function getIndexingConfigurationName($recordTable, $recordUid, TypoScriptConfiguration $solrConfiguration) + public function getIndexingConfigurationName($recordTable, $recordUid, TypoScriptConfiguration $meilisearchConfiguration) { $name = null; - $indexingConfigurations = $solrConfiguration->getEnabledIndexQueueConfigurationNames(); + $indexingConfigurations = $meilisearchConfiguration->getEnabledIndexQueueConfigurationNames(); foreach ($indexingConfigurations as $indexingConfigurationName) { - if (!$solrConfiguration->getIndexQueueConfigurationIsEnabled($indexingConfigurationName)) { + if (!$meilisearchConfiguration->getIndexQueueConfigurationIsEnabled($indexingConfigurationName)) { // ignore disabled indexing configurations continue; } $record = $this->getRecordIfIndexConfigurationIsValid($recordTable, $recordUid, - $indexingConfigurationName, $solrConfiguration); + $indexingConfigurationName, $meilisearchConfiguration); if (!empty($record)) { $name = $indexingConfigurationName; // FIXME currently returns after the first configuration match @@ -74,16 +74,16 @@ class ConfigurationAwareRecordService * * @param string $recordTable Table to read from * @param int $recordUid Id of the record - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return array Record if found, otherwise empty array */ - public function getRecord($recordTable, $recordUid, TypoScriptConfiguration $solrConfiguration) + public function getRecord($recordTable, $recordUid, TypoScriptConfiguration $meilisearchConfiguration) { $record = []; - $indexingConfigurations = $solrConfiguration->getEnabledIndexQueueConfigurationNames(); + $indexingConfigurations = $meilisearchConfiguration->getEnabledIndexQueueConfigurationNames(); foreach ($indexingConfigurations as $indexingConfigurationName) { $record = $this->getRecordIfIndexConfigurationIsValid($recordTable, $recordUid, - $indexingConfigurationName, $solrConfiguration); + $indexingConfigurationName, $meilisearchConfiguration); if (!empty($record)) { // if we found a record which matches the conditions, we can continue break; @@ -99,16 +99,16 @@ class ConfigurationAwareRecordService * @param string $recordTable * @param integer $recordUid * @param string $indexingConfigurationName - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return array */ - protected function getRecordIfIndexConfigurationIsValid($recordTable, $recordUid, $indexingConfigurationName, TypoScriptConfiguration $solrConfiguration) + protected function getRecordIfIndexConfigurationIsValid($recordTable, $recordUid, $indexingConfigurationName, TypoScriptConfiguration $meilisearchConfiguration) { - if (!$this->isValidTableForIndexConfigurationName($recordTable, $indexingConfigurationName, $solrConfiguration)) { + if (!$this->isValidTableForIndexConfigurationName($recordTable, $indexingConfigurationName, $meilisearchConfiguration)) { return []; } - $recordWhereClause = $solrConfiguration->getIndexQueueAdditionalWhereClauseByConfigurationName($indexingConfigurationName); + $recordWhereClause = $meilisearchConfiguration->getIndexQueueAdditionalWhereClauseByConfigurationName($indexingConfigurationName); $row = $this->getRecordForIndexConfigurationIsValid($recordTable, $recordUid, $recordWhereClause); @@ -146,12 +146,12 @@ class ConfigurationAwareRecordService * * @param string $recordTable * @param string $indexingConfigurationName - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return boolean */ - protected function isValidTableForIndexConfigurationName($recordTable, $indexingConfigurationName, TypoScriptConfiguration $solrConfiguration) + protected function isValidTableForIndexConfigurationName($recordTable, $indexingConfigurationName, TypoScriptConfiguration $meilisearchConfiguration) { - $tableToIndex = $solrConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); + $tableToIndex = $meilisearchConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); $isMatchingTable = ($tableToIndex === $recordTable); diff --git a/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php b/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php index 1faa6cc..5369178 100644 --- a/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php +++ b/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php @@ -299,12 +299,12 @@ class RootPageResolver implements SingletonInterface $allSites = $siteRepository->getAvailableSites(); foreach ($allSites as $site) { - $solrConfiguration = $site->getSolrConfiguration(); - $indexingConfigurationName = $this->recordService->getIndexingConfigurationName($table, $uid, $solrConfiguration); + $meilisearchConfiguration = $site->getMeilisearchConfiguration(); + $indexingConfigurationName = $this->recordService->getIndexingConfigurationName($table, $uid, $meilisearchConfiguration); if ($indexingConfigurationName === null) { continue; } - $observedPageIdsOfSiteRoot = $solrConfiguration->getIndexQueueAdditionalPageIdsByConfigurationName($indexingConfigurationName); + $observedPageIdsOfSiteRoot = $meilisearchConfiguration->getIndexQueueAdditionalPageIdsByConfigurationName($indexingConfigurationName); foreach ($observedPageIdsOfSiteRoot as $observedPageIdOfSiteRoot) { $siteRootByObservedPageIds[$observedPageIdOfSiteRoot][] = $site->getRootPageId(); } diff --git a/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php b/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php index e5b2c8b..dc6584d 100644 --- a/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php +++ b/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Index\Queue\Statistic; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/Domain/Search/ApacheSolrDocument/Builder.php b/Classes/Domain/Search/ApacheSolrDocument/Builder.php index e1cb6c0..e4f484f 100644 --- a/Classes/Domain/Search/ApacheSolrDocument/Builder.php +++ b/Classes/Domain/Search/ApacheSolrDocument/Builder.php @@ -1,5 +1,5 @@ */ @@ -121,7 +121,7 @@ class Builder /** - * Creates a Solr document with the basic / core fields set already. + * Creates a Meilisearch document with the basic / core fields set already. * * @param array $itemRecord * @param string $type diff --git a/Classes/Domain/Search/ApacheSolrDocument/Repository.php b/Classes/Domain/Search/ApacheSolrDocument/Repository.php index aa98329..2bef3e6 100644 --- a/Classes/Domain/Search/ApacheSolrDocument/Repository.php +++ b/Classes/Domain/Search/ApacheSolrDocument/Repository.php @@ -1,5 +1,5 @@ typoScriptConfiguration = $typoScriptConfiguration ?? Util::getSolrConfiguration(); + $this->typoScriptConfiguration = $typoScriptConfiguration ?? Util::getMeilisearchConfiguration(); $this->documentEscapeService = $documentEscapeService ?? GeneralUtility::makeInstance(DocumentEscapeService::class, /** @scrutinizer ignore-type */ $typoScriptConfiguration); $this->queryBuilder = $queryBuilder ?? GeneralUtility::makeInstance(QueryBuilder::class, /** @scrutinizer ignore-type */ $this->typoScriptConfiguration); } /** - * Returns firs found \WapplerSystems\Meilisearch\System\Solr\Document\Document for current page by given language id. + * Returns firs found \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document for current page by given language id. * * @param $languageId * @return Document|false @@ -91,7 +91,7 @@ class Repository implements SingletonInterface } /** - * Returns all found \WapplerSystems\Meilisearch\System\Solr\Document\Document[] by given page id and language id. + * Returns all found \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document[] by given page id and language id. * Returns empty array if nothing found, e.g. if no language or no page(or no index for page) is present. * * @param int $pageId @@ -104,9 +104,9 @@ class Repository implements SingletonInterface $this->initializeSearch($pageId, $languageId); $pageQuery = $this->queryBuilder->buildPageQuery($pageId); $response = $this->search->search($pageQuery, 0, 10000); - } catch (NoSolrConnectionFoundException $exception) { + } catch (NoMeilisearchConnectionFoundException $exception) { return []; - } catch (SolrCommunicationException $exception) { + } catch (MeilisearchCommunicationException $exception) { return []; } $data = $response->getParsedData(); @@ -127,9 +127,9 @@ class Repository implements SingletonInterface $this->initializeSearch($pageId, $languageId); $recordQuery = $this->queryBuilder->buildRecordQuery($type, $uid, $pageId); $response = $this->search->search($recordQuery, 0, 10000); - } catch (NoSolrConnectionFoundException $exception) { + } catch (NoMeilisearchConnectionFoundException $exception) { return []; - } catch (SolrCommunicationException $exception) { + } catch (MeilisearchCommunicationException $exception) { return []; } $data = $response->getParsedData(); @@ -152,19 +152,19 @@ class Repository implements SingletonInterface } /* @var $connectionManager ConnectionManager */ $connectionManager = GeneralUtility::makeInstance(ConnectionManager::class); - $solrConnection = $connectionManager->getConnectionByPageId($pageId, $languageId); + $meilisearchConnection = $connectionManager->getConnectionByPageId($pageId, $languageId); - $this->search = $this->getSearch($solrConnection); + $this->search = $this->getSearch($meilisearchConnection); } /** * Retrieves an instance of the Search object. * - * @param SolrConnection $solrConnection + * @param MeilisearchConnection $meilisearchConnection * @return Search */ - protected function getSearch($solrConnection) + protected function getSearch($meilisearchConnection) { - return GeneralUtility::makeInstance(Search::class, /** @scrutinizer ignore-type */ $solrConnection); + return GeneralUtility::makeInstance(Search::class, /** @scrutinizer ignore-type */ $meilisearchConnection); } } diff --git a/Classes/Domain/Search/LastSearches/LastSearchesRepository.php b/Classes/Domain/Search/LastSearches/LastSearchesRepository.php index e0cb9f8..e1924c9 100644 --- a/Classes/Domain/Search/LastSearches/LastSearchesRepository.php +++ b/Classes/Domain/Search/LastSearches/LastSearchesRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\LastSearches; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/Domain/Search/Query/AbstractQueryBuilder.php b/Classes/Domain/Search/Query/AbstractQueryBuilder.php index 718912d..0b39e1f 100644 --- a/Classes/Domain/Search/Query/AbstractQueryBuilder.php +++ b/Classes/Domain/Search/Query/AbstractQueryBuilder.php @@ -44,7 +44,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; /** - * The AbstractQueryBuilder contains all logic to initialize solr queries independent from TYPO3. + * The AbstractQueryBuilder contains all logic to initialize meilisearch queries independent from TYPO3. */ abstract class AbstractQueryBuilder { @@ -340,7 +340,7 @@ abstract class AbstractQueryBuilder { } /** - * Can be used to use a specific filter string in the solr query. + * Can be used to use a specific filter string in the meilisearch query. * * @param string $filterString * @param string $filterName diff --git a/Classes/Domain/Search/Query/ExtractingQuery.php b/Classes/Domain/Search/Query/ExtractingQuery.php index ab354e6..5368f6a 100644 --- a/Classes/Domain/Search/Query/ExtractingQuery.php +++ b/Classes/Domain/Search/Query/ExtractingQuery.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query; use Solarium\QueryType\Extract\Query as SolariumExtractQuery; /** - * Specialized query for content extraction using Solr Cell + * Specialized query for content extraction using Meilisearch Cell * */ class ExtractingQuery extends SolariumExtractQuery diff --git a/Classes/Domain/Search/Query/Helper/EscapeService.php b/Classes/Domain/Search/Query/Helper/EscapeService.php index f8b4492..08a06d9 100644 --- a/Classes/Domain/Search/Query/Helper/EscapeService.php +++ b/Classes/Domain/Search/Query/Helper/EscapeService.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\Helper; ***************************************************************/ /** - * The EscpaeService is responsible to escape the querystring as expected for Apache Solr. + * The EscpaeService is responsible to escape the querystring as expected for Meilisearch. * * This class should have no dependencies since it only contains static functions * diff --git a/Classes/Domain/Search/Query/ParameterBuilder/AbstractFieldList.php b/Classes/Domain/Search/Query/ParameterBuilder/AbstractFieldList.php index 5c58d24..b2489c3 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/AbstractFieldList.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/AbstractFieldList.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -37,7 +37,7 @@ abstract class AbstractFieldList extends AbstractDeactivatable protected $fieldList = []; /** - * Parameter key which should be used for Apache Solr URL query + * Parameter key which should be used for Meilisearch URL query * * @var string */ diff --git a/Classes/Domain/Search/Query/ParameterBuilder/BigramPhraseFields.php b/Classes/Domain/Search/Query/ParameterBuilder/BigramPhraseFields.php index af43c79..d88aff3 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/BigramPhraseFields.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/BigramPhraseFields.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -33,7 +33,7 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; class BigramPhraseFields extends AbstractFieldList implements ParameterBuilder { /** - * Parameter key which should be used for Apache Solr URL query + * Parameter key which should be used for Meilisearch URL query * * @var string */ @@ -52,17 +52,17 @@ class BigramPhraseFields extends AbstractFieldList implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return BigramPhraseFields */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getBigramPhraseSearchIsEnabled(); + $isEnabled = $meilisearchConfiguration->getBigramPhraseSearchIsEnabled(); if (!$isEnabled) { return new BigramPhraseFields(false); } - return self::fromString((string)$solrConfiguration->getSearchQueryBigramPhraseFields()); + return self::fromString((string)$meilisearchConfiguration->getSearchQueryBigramPhraseFields()); } /** diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Elevation.php b/Classes/Domain/Search/Query/ParameterBuilder/Elevation.php index e60834e..5409303 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Elevation.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Elevation.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; /** - * The Elevation ParameterProvider is responsible to build the solr query parameters + * The Elevation ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the elevation. */ class Elevation extends AbstractDeactivatable implements ParameterBuilder @@ -89,18 +89,18 @@ class Elevation extends AbstractDeactivatable implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Elevation */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getSearchElevation(); + $isEnabled = $meilisearchConfiguration->getSearchElevation(); if (!$isEnabled) { return new Elevation(false); } - $force = $solrConfiguration->getSearchElevationForceElevation(); - $markResults = $solrConfiguration->getSearchElevationMarkElevatedResults(); + $force = $meilisearchConfiguration->getSearchElevationForceElevation(); + $markResults = $meilisearchConfiguration->getSearchElevationMarkElevatedResults(); return new Elevation(true, $force, $markResults); } diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Faceting.php b/Classes/Domain/Search/Query/ParameterBuilder/Faceting.php index 3cf0bcd..b610ae0 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Faceting.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Faceting.php @@ -30,7 +30,7 @@ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\SortingExpression; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; /** - * The Faceting ParameterProvider is responsible to build the solr query parameters + * The Faceting ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the highlighting. */ class Faceting extends AbstractDeactivatable implements ParameterBuilder @@ -196,19 +196,19 @@ class Faceting extends AbstractDeactivatable implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Faceting */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getSearchFaceting(); + $isEnabled = $meilisearchConfiguration->getSearchFaceting(); if (!$isEnabled) { return new Faceting(false); } - $minCount = $solrConfiguration->getSearchFacetingMinimumCount(); - $limit = $solrConfiguration->getSearchFacetingFacetLimit(); - $sorting = $solrConfiguration->getSearchFacetingSortBy(); + $minCount = $meilisearchConfiguration->getSearchFacetingMinimumCount(); + $limit = $meilisearchConfiguration->getSearchFacetingFacetLimit(); + $sorting = $meilisearchConfiguration->getSearchFacetingSortBy(); return new Faceting($isEnabled, $sorting, $minCount, $limit); } diff --git a/Classes/Domain/Search/Query/ParameterBuilder/FieldCollapsing.php b/Classes/Domain/Search/Query/ParameterBuilder/FieldCollapsing.php index 4cd959d..249960f 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/FieldCollapsing.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/FieldCollapsing.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; /** - * The FieldCollapsing ParameterProvider is responsible to build the solr query parameters + * The FieldCollapsing ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the field collapsing. */ class FieldCollapsing extends AbstractDeactivatable implements ParameterBuilder @@ -112,19 +112,19 @@ class FieldCollapsing extends AbstractDeactivatable implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return FieldCollapsing */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getSearchVariants(); + $isEnabled = $meilisearchConfiguration->getSearchVariants(); if (!$isEnabled) { return new FieldCollapsing(false); } - $collapseField = $solrConfiguration->getSearchVariantsField(); - $expand = (bool)$solrConfiguration->getSearchVariantsExpand(); - $expandRows = $solrConfiguration->getSearchVariantsLimit(); + $collapseField = $meilisearchConfiguration->getSearchVariantsField(); + $expand = (bool)$meilisearchConfiguration->getSearchVariantsExpand(); + $expandRows = $meilisearchConfiguration->getSearchVariantsLimit(); return new FieldCollapsing(true, $collapseField, $expand, $expandRows); } diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Filters.php b/Classes/Domain/Search/Query/ParameterBuilder/Filters.php index c4b7f12..bea65ea 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Filters.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Filters.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * The Filters ParameterProvider is responsible to build the solr query parameters + * The Filters ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the filtering. */ class Filters @@ -140,10 +140,10 @@ class Filters } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Filters */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { return new Filters(); } diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Grouping.php b/Classes/Domain/Search/Query/ParameterBuilder/Grouping.php index 09c24bb..e44cbb2 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Grouping.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Grouping.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; /** - * The Grouping ParameterProvider is responsible to build the solr query parameters + * The Grouping ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the grouping. */ class Grouping extends AbstractDeactivatable implements ParameterBuilder @@ -185,12 +185,12 @@ class Grouping extends AbstractDeactivatable implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Grouping */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getSearchGrouping(); + $isEnabled = $meilisearchConfiguration->getSearchGrouping(); if (!$isEnabled) { return new Grouping(false); } @@ -199,10 +199,10 @@ class Grouping extends AbstractDeactivatable implements ParameterBuilder $queries = []; $sortings = []; - $resultsPerGroup = $solrConfiguration->getSearchGroupingHighestGroupResultsLimit(); - $configuredGroups = $solrConfiguration->getSearchGroupingGroupsConfiguration(); - $numberOfGroups = $solrConfiguration->getSearchGroupingNumberOfGroups(); - $sortBy = $solrConfiguration->getSearchGroupingSortBy(); + $resultsPerGroup = $meilisearchConfiguration->getSearchGroupingHighestGroupResultsLimit(); + $configuredGroups = $meilisearchConfiguration->getSearchGroupingGroupsConfiguration(); + $numberOfGroups = $meilisearchConfiguration->getSearchGroupingNumberOfGroups(); + $sortBy = $meilisearchConfiguration->getSearchGroupingSortBy(); foreach ($configuredGroups as $groupName => $groupConfiguration) { if (isset($groupConfiguration['field'])) { diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php b/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php index 6bd30d6..b02931a 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php @@ -30,7 +30,7 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * The Highlighting ParameterProvider is responsible to build the solr query parameters + * The Highlighting ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the highlighting. */ class Highlighting extends AbstractDeactivatable implements ParameterBuilder @@ -147,19 +147,19 @@ class Highlighting extends AbstractDeactivatable implements ParameterBuilder /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Highlighting */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getSearchResultsHighlighting(); + $isEnabled = $meilisearchConfiguration->getSearchResultsHighlighting(); if (!$isEnabled) { return new Highlighting(false); } - $fragmentSize = $solrConfiguration->getSearchResultsHighlightingFragmentSize(); - $highlightingFields = $solrConfiguration->getSearchResultsHighlightingFields(); - $wrap = explode('|', $solrConfiguration->getSearchResultsHighlightingWrap()); + $fragmentSize = $meilisearchConfiguration->getSearchResultsHighlightingFragmentSize(); + $highlightingFields = $meilisearchConfiguration->getSearchResultsHighlightingFields(); + $wrap = explode('|', $meilisearchConfiguration->getSearchResultsHighlightingWrap()); $prefix = isset($wrap[0]) ? $wrap[0] : ''; $postfix = isset($wrap[1]) ? $wrap[1] : ''; diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Operator.php b/Classes/Domain/Search/Query/ParameterBuilder/Operator.php index b2445c5..804b3ce 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Operator.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Operator.php @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; /** - * The Operator ParameterProvider is responsible to build the solr query parameters + * The Operator ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the operator q.op. */ class Operator extends AbstractDeactivatable diff --git a/Classes/Domain/Search/Query/ParameterBuilder/ParameterBuilder.php b/Classes/Domain/Search/Query/ParameterBuilder/ParameterBuilder.php index 2d024e8..5e03678 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/ParameterBuilder.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/ParameterBuilder.php @@ -29,7 +29,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; /** * The implementation of ParameterBuilder is responsible to build an array with - * the query parameter that are needed for solr + * the query parameter that are needed for meilisearch * * Interface ParameterProvider */ diff --git a/Classes/Domain/Search/Query/ParameterBuilder/PhraseFields.php b/Classes/Domain/Search/Query/ParameterBuilder/PhraseFields.php index 846ec33..c791ab7 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/PhraseFields.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/PhraseFields.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -33,7 +33,7 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; class PhraseFields extends AbstractFieldList implements ParameterBuilder { /** - * Parameter key which should be used for Apache Solr URL query + * Parameter key which should be used for Meilisearch URL query * * @var string */ @@ -52,17 +52,17 @@ class PhraseFields extends AbstractFieldList implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return PhraseFields */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getPhraseSearchIsEnabled(); + $isEnabled = $meilisearchConfiguration->getPhraseSearchIsEnabled(); if (!$isEnabled) { return new PhraseFields(false); } - return self::fromString((string)$solrConfiguration->getSearchQueryPhraseFields()); + return self::fromString((string)$meilisearchConfiguration->getSearchQueryPhraseFields()); } /** diff --git a/Classes/Domain/Search/Query/ParameterBuilder/QueryFields.php b/Classes/Domain/Search/Query/ParameterBuilder/QueryFields.php index ec89cf8..3b59b22 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/QueryFields.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/QueryFields.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * The QueryFields class holds all information for the query which fields should be used to query (Solr qf parameter). + * The QueryFields class holds all information for the query which fields should be used to query (Meilisearch qf parameter). */ class QueryFields implements ParameterBuilder { diff --git a/Classes/Domain/Search/Query/ParameterBuilder/ReturnFields.php b/Classes/Domain/Search/Query/ParameterBuilder/ReturnFields.php index bfe35af..6027731 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/ReturnFields.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/ReturnFields.php @@ -30,7 +30,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; /** * The ReturnFields class is responsible to hold a list of field names that should be returned from - * solr. + * meilisearch. */ class ReturnFields implements ParameterBuilder { diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Slops.php b/Classes/Domain/Search/Query/ParameterBuilder/Slops.php index 80dbc20..08fa07e 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Slops.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Slops.php @@ -29,7 +29,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; /** - * The Slops ParameterProvider is responsible to build the solr query parameters + * The Slops ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the several slop arguments. */ class Slops implements ParameterBuilder @@ -171,12 +171,12 @@ class Slops implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Slops */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $searchConfiguration = $solrConfiguration->getSearchConfiguration(); + $searchConfiguration = $meilisearchConfiguration->getSearchConfiguration(); $querySlop = static::getQuerySlopFromConfiguration($searchConfiguration); $phraseSlop = static::getPhraseSlopFromConfiguration($searchConfiguration); $bigramPhraseSlop = static::getBigramPhraseSlopFromConfiguration($searchConfiguration); diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Sorting.php b/Classes/Domain/Search/Query/ParameterBuilder/Sorting.php index 4aa05c8..0913111 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Sorting.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Sorting.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * The Sorting ParameterProvider is responsible to build the solr query parameters + * The Sorting ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the sorting. */ class Sorting extends AbstractDeactivatable diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Sortings.php b/Classes/Domain/Search/Query/ParameterBuilder/Sortings.php index 7b13e33..9f21cf5 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Sortings.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Sortings.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * The Sorting ParameterProvider is responsible to build the solr query parameters + * The Sorting ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the sorting. */ class Sortings extends AbstractDeactivatable diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Spellchecking.php b/Classes/Domain/Search/Query/ParameterBuilder/Spellchecking.php index e696184..aaec1b6 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Spellchecking.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Spellchecking.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\Domain\Search\Query\AbstractQueryBuilder; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; /** - * The Spellchecking ParameterProvider is responsible to build the solr query parameters + * The Spellchecking ParameterProvider is responsible to build the meilisearch query parameters * that are needed for the spellchecking. */ class Spellchecking extends AbstractDeactivatable implements ParameterBuilder @@ -60,17 +60,17 @@ class Spellchecking extends AbstractDeactivatable implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return Spellchecking */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getSearchSpellchecking(); + $isEnabled = $meilisearchConfiguration->getSearchSpellchecking(); if (!$isEnabled) { return new Spellchecking(false); } - $maxCollationTries = $solrConfiguration->getSearchSpellcheckingNumberOfSuggestionsToTry(); + $maxCollationTries = $meilisearchConfiguration->getSearchSpellcheckingNumberOfSuggestionsToTry(); return new Spellchecking($isEnabled, $maxCollationTries); } diff --git a/Classes/Domain/Search/Query/ParameterBuilder/TrigramPhraseFields.php b/Classes/Domain/Search/Query/ParameterBuilder/TrigramPhraseFields.php index f4e0d8e..7cb1f35 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/TrigramPhraseFields.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/TrigramPhraseFields.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\Query\ParameterBuilder; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -33,7 +33,7 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; class TrigramPhraseFields extends AbstractFieldList implements ParameterBuilder { /** - * Parameter key which should be used for Apache Solr URL query + * Parameter key which should be used for Meilisearch URL query * * @var string */ @@ -52,17 +52,17 @@ class TrigramPhraseFields extends AbstractFieldList implements ParameterBuilder } /** - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration * @return TrigramPhraseFields */ - public static function fromTypoScriptConfiguration(TypoScriptConfiguration $solrConfiguration) + public static function fromTypoScriptConfiguration(TypoScriptConfiguration $meilisearchConfiguration) { - $isEnabled = $solrConfiguration->getTrigramPhraseSearchIsEnabled(); + $isEnabled = $meilisearchConfiguration->getTrigramPhraseSearchIsEnabled(); if (!$isEnabled) { return new TrigramPhraseFields(false); } - return self::fromString((string)$solrConfiguration->getSearchQueryTrigramPhraseFields()); + return self::fromString((string)$meilisearchConfiguration->getSearchQueryTrigramPhraseFields()); } /** diff --git a/Classes/Domain/Search/Query/QueryBuilder.php b/Classes/Domain/Search/Query/QueryBuilder.php index 3f6e92e..6c38f3e 100644 --- a/Classes/Domain/Search/Query/QueryBuilder.php +++ b/Classes/Domain/Search/Query/QueryBuilder.php @@ -43,13 +43,13 @@ use WapplerSystems\Meilisearch\Domain\Site\SiteHashService; use WapplerSystems\Meilisearch\Domain\Site\SiteRepository; use WapplerSystems\Meilisearch\FieldProcessor\PageUidToHierarchy; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\Util; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; /** - * The concrete QueryBuilder contains all TYPO3 specific initialization logic of solr queries, for TYPO3. + * The concrete QueryBuilder contains all TYPO3 specific initialization logic of meilisearch queries, for TYPO3. */ class QueryBuilder extends AbstractQueryBuilder { @@ -67,7 +67,7 @@ class QueryBuilder extends AbstractQueryBuilder { protected $typoScriptConfiguration = null; /** - * @var SolrLogManager; + * @var MeilisearchLogManager; */ protected $logger = null; @@ -79,13 +79,13 @@ class QueryBuilder extends AbstractQueryBuilder { /** * QueryBuilder constructor. * @param TypoScriptConfiguration|null $configuration - * @param SolrLogManager|null $solrLogManager + * @param MeilisearchLogManager|null $meilisearchLogManager * @param SiteHashService|null $siteHashService */ - public function __construct(TypoScriptConfiguration $configuration = null, SolrLogManager $solrLogManager = null, SiteHashService $siteHashService = null) + public function __construct(TypoScriptConfiguration $configuration = null, MeilisearchLogManager $meilisearchLogManager = null, SiteHashService $siteHashService = null) { - $this->typoScriptConfiguration = $configuration ?? Util::getSolrConfiguration(); - $this->logger = $solrLogManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->typoScriptConfiguration = $configuration ?? Util::getMeilisearchConfiguration(); + $this->logger = $meilisearchLogManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->siteHashService = $siteHashService ?? GeneralUtility::makeInstance(SiteHashService::class); } @@ -121,7 +121,7 @@ class QueryBuilder extends AbstractQueryBuilder { public function buildSearchQuery($rawQuery, $resultsPerPage = 10, array $additionalFiltersFromRequest = []) : SearchQuery { if ($this->typoScriptConfiguration->getLoggingQuerySearchWords()) { - $this->logger->log(SolrLogManager::INFO, 'Received search query', [$rawQuery]); + $this->logger->log(MeilisearchLogManager::INFO, 'Received search query', [$rawQuery]); } /* @var $query SearchQuery */ @@ -170,7 +170,7 @@ class QueryBuilder extends AbstractQueryBuilder { /** * Returns Query for Search which finds document for given page. - * Note: The Connection is per language as recommended in ext-solr docs. + * Note: The Connection is per language as recommended in ext-meilisearch docs. * * @return Query */ @@ -361,7 +361,7 @@ class QueryBuilder extends AbstractQueryBuilder { } /** - * Applies the configured initial query settings to set the alternative query for solr as required. + * Applies the configured initial query settings to set the alternative query for meilisearch as required. * * @return QueryBuilder */ diff --git a/Classes/Domain/Search/Query/SuggestQuery.php b/Classes/Domain/Search/Query/SuggestQuery.php index cbe970f..817faca 100644 --- a/Classes/Domain/Search/Query/SuggestQuery.php +++ b/Classes/Domain/Search/Query/SuggestQuery.php @@ -50,17 +50,17 @@ class SuggestQuery extends Query * SuggestQuery constructor. * * @param string $keywords - * @param TypoScriptConfiguration $solrConfiguration + * @param TypoScriptConfiguration $meilisearchConfiguration */ - public function __construct($keywords, $solrConfiguration = null) + public function __construct($keywords, $meilisearchConfiguration = null) { parent::__construct(); $keywords = (string)$keywords; - $solrConfiguration = $solrConfiguration ?? Util::getSolrConfiguration(); + $meilisearchConfiguration = $meilisearchConfiguration ?? Util::getMeilisearchConfiguration(); $this->setQuery($keywords); - $this->configuration = $solrConfiguration->getObjectByPathOrDefault('plugin.tx_meilisearch.suggest.', []); + $this->configuration = $meilisearchConfiguration->getObjectByPathOrDefault('plugin.tx_meilisearch.suggest.', []); if (!empty($this->configuration['treatMultipleTermsAsSingleTerm'])) { $this->prefix = EscapeService::escape($keywords); diff --git a/Classes/Domain/Search/ResultSet/Facets/AbstractFacet.php b/Classes/Domain/Search/ResultSet/Facets/AbstractFacet.php index c04597e..15077d0 100644 --- a/Classes/Domain/Search/ResultSet/Facets/AbstractFacet.php +++ b/Classes/Domain/Search/ResultSet/Facets/AbstractFacet.php @@ -117,7 +117,7 @@ abstract class AbstractFacet } /** - * Get solr field name + * Get meilisearch field name * * @return string */ diff --git a/Classes/Domain/Search/ResultSet/Facets/AbstractFacetParser.php b/Classes/Domain/Search/ResultSet/Facets/AbstractFacetParser.php index 14afee0..92b0b4a 100644 --- a/Classes/Domain/Search/ResultSet/Facets/AbstractFacetParser.php +++ b/Classes/Domain/Search/ResultSet/Facets/AbstractFacetParser.php @@ -118,13 +118,13 @@ abstract class AbstractFacetParser implements FacetParserInterface /** - * @param array $facetValuesFromSolrResponse + * @param array $facetValuesFromMeilisearchResponse * @param array $facetValuesFromSearchRequest * @return mixed */ - protected function getMergedFacetValueFromSearchRequestAndSolrResponse($facetValuesFromSolrResponse, $facetValuesFromSearchRequest) + protected function getMergedFacetValueFromSearchRequestAndMeilisearchResponse($facetValuesFromMeilisearchResponse, $facetValuesFromSearchRequest) { - $facetValueItemsToCreate = $facetValuesFromSolrResponse; + $facetValueItemsToCreate = $facetValuesFromMeilisearchResponse; foreach ($facetValuesFromSearchRequest as $valueFromRequest) { // if we have options in the request that have not been in the response we add them with a count of 0 diff --git a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyFacetParser.php b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyFacetParser.php index 38bafa9..ced1804 100644 --- a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyFacetParser.php +++ b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyFacetParser.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\OptionBased\ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\AbstractFacetParser; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\System\Solr\ParsingUtil; +use WapplerSystems\Meilisearch\System\Meilisearch\ParsingUtil; /** * Class HierarchyFacetParser @@ -34,9 +34,9 @@ class HierarchyFacetParser extends AbstractFacetParser $response = $resultSet->getResponse(); $fieldName = $facetConfiguration['field']; $label = $this->getPlainLabelOrApplyCObject($facetConfiguration); - $optionsFromSolrResponse = isset($response->facet_counts->facet_fields->{$fieldName}) ? ParsingUtil::getMapArrayFromFlatArray($response->facet_counts->facet_fields->{$fieldName}) : []; + $optionsFromMeilisearchResponse = isset($response->facet_counts->facet_fields->{$fieldName}) ? ParsingUtil::getMapArrayFromFlatArray($response->facet_counts->facet_fields->{$fieldName}) : []; $optionsFromRequest = $this->getActiveFacetValuesFromRequest($resultSet, $facetName); - $hasOptionsInResponse = !empty($optionsFromSolrResponse); + $hasOptionsInResponse = !empty($optionsFromMeilisearchResponse); $hasSelectedOptionsInRequest = count($optionsFromRequest) > 0; $hasNoOptionsToShow = !$hasOptionsInResponse && !$hasSelectedOptionsInRequest; $hideEmpty = !$resultSet->getUsedSearchRequest()->getContextTypoScriptConfiguration()->getSearchFacetingShowEmptyFacetsByName($facetName); @@ -53,7 +53,7 @@ class HierarchyFacetParser extends AbstractFacetParser $facet->setIsAvailable($hasOptionsInResponse); - $nodesToCreate = $this->getMergedFacetValueFromSearchRequestAndSolrResponse($optionsFromSolrResponse, $optionsFromRequest); + $nodesToCreate = $this->getMergedFacetValueFromSearchRequestAndMeilisearchResponse($optionsFromMeilisearchResponse, $optionsFromRequest); if ($this->facetOptionsMustBeResorted($facetConfiguration)) { $nodesToCreate = $this->sortFacetOptionsInNaturalOrder($nodesToCreate); @@ -96,13 +96,13 @@ class HierarchyFacetParser extends AbstractFacetParser /** * Checks if options must be resorted. * - * Apache Solr facet.sort can be set globally or per facet. + * Meilisearch facet.sort can be set globally or per facet. * Relevant TypoScript paths: - * plugin.tx_meilisearch.search.faceting.sortBy causes facet.sort Apache Solr parameter + * plugin.tx_meilisearch.search.faceting.sortBy causes facet.sort Meilisearch parameter * plugin.tx_meilisearch.search.faceting.facets.[facetName].sortBy causes f..facet.sort parameter * - * see: https://lucene.apache.org/solr/guide/6_6/faceting.html#Faceting-Thefacet.sortParameter - * see: https://wiki.apache.org/solr/SimpleFacetParameters#facet.sort : "This parameter can be specified on a per field basis." + * see: https://lucene.apache.org/meilisearch/guide/6_6/faceting.html#Faceting-Thefacet.sortParameter + * see: https://wiki.apache.org/meilisearch/SimpleFacetParameters#facet.sort : "This parameter can be specified on a per field basis." * * @param array $facetConfiguration * @return bool diff --git a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyTool.php b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyTool.php index 4ffe147..8d128fe 100644 --- a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyTool.php +++ b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyTool.php @@ -29,7 +29,7 @@ class HierarchyTool } /** - * Replaces @@@slash@@@ with \/ to have the path usable for solr again. + * Replaces @@@slash@@@ with \/ to have the path usable for meilisearch again. * * @param string $pathWithReplacedContentSlashes * @return string diff --git a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyUrlDecoder.php b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyUrlDecoder.php index e47866c..212b8c1 100644 --- a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyUrlDecoder.php +++ b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Hierarchy/HierarchyUrlDecoder.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\OptionBased\ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\FacetUrlDecoderInterface; /** - * Filter encoder to build Solr hierarchy queries from tx_meilisearch[filter] + * Filter encoder to build Meilisearch hierarchy queries from tx_meilisearch[filter] * * @author Ingo Renner */ @@ -42,11 +42,11 @@ class HierarchyUrlDecoder implements FacetUrlDecoderInterface const DELIMITER = '/'; /** - * Parses the given hierarchy filter and returns a Solr filter query. + * Parses the given hierarchy filter and returns a Meilisearch filter query. * * @param string $hierarchy The hierarchy filter query. * @param array $configuration Facet configuration - * @return string Lucene query language filter to be used for querying Solr + * @return string Lucene query language filter to be used for querying Meilisearch */ public function decode($hierarchy, array $configuration = []) { diff --git a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Options/OptionsFacetParser.php b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Options/OptionsFacetParser.php index 84c010c..2b81366 100644 --- a/Classes/Domain/Search/ResultSet/Facets/OptionBased/Options/OptionsFacetParser.php +++ b/Classes/Domain/Search/ResultSet/Facets/OptionBased/Options/OptionsFacetParser.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\OptionBased\ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\AbstractFacetParser; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\SignalSlot\Dispatcher; @@ -49,10 +49,10 @@ class OptionsFacetParser extends AbstractFacetParser $response = $resultSet->getResponse(); $fieldName = $facetConfiguration['field']; $label = $this->getPlainLabelOrApplyCObject($facetConfiguration); - $optionsFromSolrResponse = $this->getOptionsFromSolrResponse($facetName, $response); - $metricsFromSolrResponse = $this->getMetricsFromSolrResponse($facetName, $response); + $optionsFromMeilisearchResponse = $this->getOptionsFromMeilisearchResponse($facetName, $response); + $metricsFromMeilisearchResponse = $this->getMetricsFromMeilisearchResponse($facetName, $response); $optionsFromRequest = $this->getActiveFacetValuesFromRequest($resultSet, $facetName); - $hasOptionsInResponse = !empty($optionsFromSolrResponse); + $hasOptionsInResponse = !empty($optionsFromMeilisearchResponse); $hasSelectedOptionsInRequest = count($optionsFromRequest) > 0; $hasNoOptionsToShow = !$hasOptionsInResponse && !$hasSelectedOptionsInRequest; $hideEmpty = !$resultSet->getUsedSearchRequest()->getContextTypoScriptConfiguration()->getSearchFacetingShowEmptyFacetsByName($facetName); @@ -75,7 +75,7 @@ class OptionsFacetParser extends AbstractFacetParser $facet->setIsUsed($hasActiveOptions); $facet->setIsAvailable($hasOptionsInResponse); - $optionsToCreate = $this->getMergedFacetValueFromSearchRequestAndSolrResponse($optionsFromSolrResponse, $optionsFromRequest); + $optionsToCreate = $this->getMergedFacetValueFromSearchRequestAndMeilisearchResponse($optionsFromMeilisearchResponse, $optionsFromRequest); foreach ($optionsToCreate as $optionsValue => $count) { if ($this->getIsExcludedFacetValue($optionsValue, $facetConfiguration)) { continue; @@ -83,11 +83,11 @@ class OptionsFacetParser extends AbstractFacetParser $isOptionsActive = in_array($optionsValue, $optionsFromRequest); $label = $this->getLabelFromRenderingInstructions($optionsValue, $count, $facetName, $facetConfiguration); - $facet->addOption($this->objectManager->get(Option::class, $facet, $label, $optionsValue, $count, $isOptionsActive, $metricsFromSolrResponse[$optionsValue])); + $facet->addOption($this->objectManager->get(Option::class, $facet, $label, $optionsValue, $count, $isOptionsActive, $metricsFromMeilisearchResponse[$optionsValue])); } // after all options have been created we apply a manualSortOrder if configured - // the sortBy (lex,..) is done by the solr server and triggered by the query, therefore it does not + // the sortBy (lex,..) is done by the meilisearch server and triggered by the query, therefore it does not // need to be handled in the frontend. $this->applyManualSortOrder($facet, $facetConfiguration); $this->applyReverseOrder($facet, $facetConfiguration); @@ -104,20 +104,20 @@ class OptionsFacetParser extends AbstractFacetParser * @param ResponseAdapter $response * @return array */ - protected function getOptionsFromSolrResponse($facetName, ResponseAdapter $response) + protected function getOptionsFromMeilisearchResponse($facetName, ResponseAdapter $response) { - $optionsFromSolrResponse = []; + $optionsFromMeilisearchResponse = []; if (!isset($response->facets->{$facetName})) { - return $optionsFromSolrResponse; + return $optionsFromMeilisearchResponse; } foreach ($response->facets->{$facetName}->buckets as $bucket) { $optionValue = $bucket->val; $optionCount = $bucket->count; - $optionsFromSolrResponse[$optionValue] = $optionCount; + $optionsFromMeilisearchResponse[$optionValue] = $optionCount; } - return $optionsFromSolrResponse; + return $optionsFromMeilisearchResponse; } /** @@ -125,9 +125,9 @@ class OptionsFacetParser extends AbstractFacetParser * @param ResponseAdapter $response * @return array */ - protected function getMetricsFromSolrResponse($facetName, ResponseAdapter $response) + protected function getMetricsFromMeilisearchResponse($facetName, ResponseAdapter $response) { - $metricsFromSolrResponse = []; + $metricsFromMeilisearchResponse = []; if (!isset($response->facets->{$facetName}->buckets)) { return []; @@ -138,11 +138,11 @@ class OptionsFacetParser extends AbstractFacetParser foreach ($bucketVariables as $key => $value) { if (strpos($key, 'metrics_') === 0) { $metricsKey = str_replace('metrics_', '', $key); - $metricsFromSolrResponse[$bucket->val][$metricsKey] = $value; + $metricsFromMeilisearchResponse[$bucket->val][$metricsKey] = $value; } } } - return $metricsFromSolrResponse; + return $metricsFromMeilisearchResponse; } } diff --git a/Classes/Domain/Search/ResultSet/Facets/OptionBased/QueryGroup/QueryGroupFacetParser.php b/Classes/Domain/Search/ResultSet/Facets/OptionBased/QueryGroup/QueryGroupFacetParser.php index 4fe9259..ac224a5 100644 --- a/Classes/Domain/Search/ResultSet/Facets/OptionBased/QueryGroup/QueryGroupFacetParser.php +++ b/Classes/Domain/Search/ResultSet/Facets/OptionBased/QueryGroup/QueryGroupFacetParser.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\OptionBased\ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\AbstractFacetParser; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; /** * Class QueryGroupFacetParser @@ -86,7 +86,7 @@ class QueryGroupFacetParser extends AbstractFacetParser // after all options have been created we apply a manualSortOrder if configured - // the sortBy (lex,..) is done by the solr server and triggered by the query, therefore it does not + // the sortBy (lex,..) is done by the meilisearch server and triggered by the query, therefore it does not // need to be handled in the frontend. $this->applyManualSortOrder($facet, $facetConfiguration); $this->applyReverseOrder($facet, $facetConfiguration); @@ -112,7 +112,7 @@ class QueryGroupFacetParser extends AbstractFacetParser // todo: add test cases to check if this is needed https://forge.typo3.org/issues/45440 // remove tags from the facet.query response, for facet.field - // and facet.range Solr does that on its own automatically + // and facet.range Meilisearch does that on its own automatically $rawValue = preg_replace('/^\{!ex=[^\}]*\}(.*)/', '\\1', $rawValue); list($field, $query) = explode(':', $rawValue, 2); diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/AbstractRangeFacetParser.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/AbstractRangeFacetParser.php index fc47847..6f999c3 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/AbstractRangeFacetParser.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/AbstractRangeFacetParser.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\RangeBased; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\AbstractFacetParser; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\System\Solr\ParsingUtil; +use WapplerSystems\Meilisearch\System\Meilisearch\ParsingUtil; /** * Class AbstractRangeFacetParser diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php index 5d9f318..74afcce 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php @@ -103,7 +103,7 @@ class DateRange extends AbstractRangeFacetItem } /** - * Retrieves the end date that was received from solr for this facet. + * Retrieves the end date that was received from meilisearch for this facet. * * @return \DateTime */ @@ -113,7 +113,7 @@ class DateRange extends AbstractRangeFacetItem } /** - * Retrieves the start date that was received from solr for this facet. + * Retrieves the start date that was received from meilisearch for this facet. * * @return \DateTime */ diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeUrlDecoder.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeUrlDecoder.php index e90846e..81539c5 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeUrlDecoder.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeUrlDecoder.php @@ -30,7 +30,7 @@ use WapplerSystems\Meilisearch\System\DateTime\FormatService; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Parser to build solr range queries from tx_meilisearch[filter] + * Parser to build meilisearch range queries from tx_meilisearch[filter] * * @author Markus Goldbach */ @@ -45,12 +45,12 @@ class DateRangeUrlDecoder implements FacetUrlDecoderInterface const DELIMITER = '-'; /** - * Parses the given date range from a GET parameter and returns a Solr + * Parses the given date range from a GET parameter and returns a Meilisearch * date range filter. * * @param string $dateRange The range filter query string from the query URL * @param array $configuration Facet configuration - * @return string Lucene query language filter to be used for querying Solr + * @return string Lucene query language filter to be used for querying Meilisearch */ public function decode($dateRange, array $configuration = []) { diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRange.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRange.php index 682e79b..7178e17 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRange.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRange.php @@ -102,7 +102,7 @@ class NumericRange extends AbstractRangeFacetItem } /** - * Retrieves the end date that was received from solr for this facet. + * Retrieves the end date that was received from meilisearch for this facet. * * @return float */ @@ -112,7 +112,7 @@ class NumericRange extends AbstractRangeFacetItem } /** - * Retrieves the start date that was received from solr for this facet. + * Retrieves the start date that was received from meilisearch for this facet. * * @return float */ diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php index af31d0e..50697d2 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php @@ -29,7 +29,7 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\RangeBased\N use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\FacetUrlDecoderInterface; /** - * Parser to build Solr range queries from tx_meilisearch[filter] + * Parser to build Meilisearch range queries from tx_meilisearch[filter] * * @author Markus Goldbach * @author Ingo Renner @@ -46,12 +46,12 @@ class NumericRangeUrlDecoder implements FacetUrlDecoderInterface const DELIMITER = '-'; /** - * Parses the given range from a GET parameter and returns a Solr range + * Parses the given range from a GET parameter and returns a Meilisearch range * filter. * * @param string $range The range filter from the URL. * @param array $configuration Facet configuration - * @return string Lucene query language filter to be used for querying Solr + * @return string Lucene query language filter to be used for querying Meilisearch * @throws \InvalidArgumentException */ public function decode($range, array $configuration = []) diff --git a/Classes/Domain/Search/ResultSet/Result/Parser/AbstractResultParser.php b/Classes/Domain/Search/ResultSet/Result/Parser/AbstractResultParser.php index fbda6f3..e8e3cd1 100644 --- a/Classes/Domain/Search/ResultSet/Result/Parser/AbstractResultParser.php +++ b/Classes/Domain/Search/ResultSet/Result/Parser/AbstractResultParser.php @@ -32,7 +32,7 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * A ResultParser is responsible to create the result object structure from the \Apache_Solr_Response + * A ResultParser is responsible to create the result object structure from the \Apache_Meilisearch_Response * and assign it to the SearchResultSet. */ abstract class AbstractResultParser { diff --git a/Classes/Domain/Search/ResultSet/Result/Parser/DefaultResultParser.php b/Classes/Domain/Search/ResultSet/Result/Parser/DefaultResultParser.php index 3af61a7..357b2b2 100644 --- a/Classes/Domain/Search/ResultSet/Result/Parser/DefaultResultParser.php +++ b/Classes/Domain/Search/ResultSet/Result/Parser/DefaultResultParser.php @@ -62,7 +62,7 @@ class DefaultResultParser extends AbstractResultParser { } foreach ($documents as $searchResult) { - $searchResultObject = $this->searchResultBuilder->fromApacheSolrDocument($searchResult); + $searchResultObject = $this->searchResultBuilder->fromApacheMeilisearchDocument($searchResult); $searchResults[] = $searchResultObject; } diff --git a/Classes/Domain/Search/ResultSet/Result/Parser/DocumentEscapeService.php b/Classes/Domain/Search/ResultSet/Result/Parser/DocumentEscapeService.php index 348cd10..bbc9a3f 100644 --- a/Classes/Domain/Search/ResultSet/Result/Parser/DocumentEscapeService.php +++ b/Classes/Domain/Search/ResultSet/Result/Parser/DocumentEscapeService.php @@ -26,11 +26,11 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\Parser; ***************************************************************/ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use WapplerSystems\Meilisearch\Util; /** - * Applies htmlspecialschars on documents of a solr response. + * Applies htmlspecialschars on documents of a meilisearch response. */ class DocumentEscapeService { @@ -44,7 +44,7 @@ class DocumentEscapeService { * @param TypoScriptConfiguration|null $typoScriptConfiguration */ public function __construct(TypoScriptConfiguration $typoScriptConfiguration = null) { - $this->typoScriptConfiguration = $typoScriptConfiguration ?? Util::getSolrConfiguration(); + $this->typoScriptConfiguration = $typoScriptConfiguration ?? Util::getMeilisearchConfiguration(); } /** @@ -56,13 +56,13 @@ class DocumentEscapeService { */ public function applyHtmlSpecialCharsOnAllFields(array $documents) { - $trustedSolrFields = $this->typoScriptConfiguration->getSearchTrustedFieldsArray(); + $trustedMeilisearchFields = $this->typoScriptConfiguration->getSearchTrustedFieldsArray(); foreach ($documents as $key => $document) { $fieldNames = array_keys($document->getFields() ?? []); foreach ($fieldNames as $fieldName) { - if (is_array($trustedSolrFields) && in_array($fieldName, $trustedSolrFields)) { + if (is_array($trustedMeilisearchFields) && in_array($fieldName, $trustedMeilisearchFields)) { // we skip this field, since it was marked as secure continue; } diff --git a/Classes/Domain/Search/ResultSet/Result/SearchResult.php b/Classes/Domain/Search/ResultSet/Result/SearchResult.php index 74411a7..122beb1 100644 --- a/Classes/Domain/Search/ResultSet/Result/SearchResult.php +++ b/Classes/Domain/Search/ResultSet/Result/SearchResult.php @@ -26,10 +26,10 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result; ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Grouping\GroupItem; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; /** - * Solr document class that should be used in the frontend in the search context. + * Meilisearch document class that should be used in the frontend in the search context. * * @author Timo Schmidt */ @@ -38,7 +38,7 @@ class SearchResult extends Document /** * The variant field value * - * Value of Solr collapse field, which is defined via + * Value of Meilisearch collapse field, which is defined via * TypoScript variable "variants.variantField" * * @var string diff --git a/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php b/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php index 3a5cee9..e1330d4 100644 --- a/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php +++ b/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php @@ -25,24 +25,24 @@ namespace WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * The SearchResultBuilder is responsible to build a SearchResult object from an \WapplerSystems\Meilisearch\System\Solr\Document\Document + * The SearchResultBuilder is responsible to build a SearchResult object from an \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document * and should use a different class as SearchResult if configured. */ class SearchResultBuilder { /** - * This method is used to wrap the original solr document instance in an instance of the configured SearchResult + * This method is used to wrap the original meilisearch document instance in an instance of the configured SearchResult * class. * * @param Document $originalDocument * @throws \InvalidArgumentException * @return SearchResult */ - public function fromApacheSolrDocument(Document $originalDocument) + public function fromApacheMeilisearchDocument(Document $originalDocument) { $searchResultClassName = $this->getResultClassName(); @@ -60,7 +60,7 @@ class SearchResultBuilder { */ protected function getResultClassName() { - return isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['searchResultClassName ']) ? - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['searchResultClassName '] : SearchResult::class; + return isset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultClassName ']) ? + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['searchResultClassName '] : SearchResult::class; } } diff --git a/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php b/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php index e01fc36..5d45a90 100644 --- a/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php +++ b/Classes/Domain/Search/ResultSet/ResultSetReconstitutionProcessor.php @@ -25,7 +25,7 @@ use TYPO3\CMS\Extbase\Object\ObjectManagerInterface; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; /** - * This processor is used to transform the solr response into a + * This processor is used to transform the meilisearch response into a * domain object hierarchy that can be used in the application (controller and view). * * @author Frans Saris @@ -83,7 +83,7 @@ class ResultSetReconstitutionProcessor implements SearchResultSetProcessor $resultSet = $this->parseSpellCheckingResponseIntoObjects($resultSet); $resultSet = $this->parseSortingIntoObjects($resultSet); - // here we can reconstitute other domain objects from the solr response + // here we can reconstitute other domain objects from the meilisearch response $resultSet = $this->parseFacetsIntoObjects($resultSet); return $resultSet; diff --git a/Classes/Domain/Search/ResultSet/SearchResultSet.php b/Classes/Domain/Search/ResultSet/SearchResultSet.php index b8ccc67..01478df 100644 --- a/Classes/Domain/Search/ResultSet/SearchResultSet.php +++ b/Classes/Domain/Search/ResultSet/SearchResultSet.php @@ -35,10 +35,10 @@ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Sorting\SortingCollection use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Spellchecking\Suggestion; use WapplerSystems\Meilisearch\Domain\Search\SearchRequest; use WapplerSystems\Meilisearch\Search; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; /** - * The SearchResultSet is used to provided access to the \Apache_Solr_Response and + * The SearchResultSet is used to provided access to the \Apache_Meilisearch_Response and * other relevant information, like the used Query and Request objects. * * @author Timo Schmidt diff --git a/Classes/Domain/Search/ResultSet/SearchResultSetService.php b/Classes/Domain/Search/ResultSet/SearchResultSetService.php index 185af65..c5e881f 100644 --- a/Classes/Domain/Search/ResultSet/SearchResultSetService.php +++ b/Classes/Domain/Search/ResultSet/SearchResultSetService.php @@ -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); diff --git a/Classes/Domain/Search/Score/ScoreCalculationService.php b/Classes/Domain/Search/Score/ScoreCalculationService.php index 847f998..365e496 100644 --- a/Classes/Domain/Search/Score/ScoreCalculationService.php +++ b/Classes/Domain/Search/Score/ScoreCalculationService.php @@ -38,13 +38,13 @@ class ScoreCalculationService * Renders an overview of how the score for a certain document has been * calculated. * - * @param string $solrDebugData debug data from the solr response + * @param string $meilisearchDebugData debug data from the meilisearch response * @param string $queryFields * @return string The HTML showing the score analysis */ - public function getRenderedScores($solrDebugData, $queryFields) + public function getRenderedScores($meilisearchDebugData, $queryFields) { - $highScores = $this->parseScores($solrDebugData, $queryFields); + $highScores = $this->parseScores($meilisearchDebugData, $queryFields); return $this->render($highScores); } diff --git a/Classes/Domain/Search/SearchRequestBuilder.php b/Classes/Domain/Search/SearchRequestBuilder.php index 6c8cc32..d1e85e1 100644 --- a/Classes/Domain/Search/SearchRequestBuilder.php +++ b/Classes/Domain/Search/SearchRequestBuilder.php @@ -102,8 +102,8 @@ class SearchRequestBuilder if ($this->shouldHideResultsFromInitialSearch($searchRequest)) { // initialize search with an empty query, which would by default return all documents - // anyway, tell Solr to not return any result documents - // Solr will still return facets though + // anyway, tell Meilisearch to not return any result documents + // Meilisearch will still return facets though $currentNumberOfResultsShown = 0; } diff --git a/Classes/Domain/Search/Suggest/SuggestService.php b/Classes/Domain/Search/Suggest/SuggestService.php index 8239d22..f5ebcdd 100644 --- a/Classes/Domain/Search/Suggest/SuggestService.php +++ b/Classes/Domain/Search/Suggest/SuggestService.php @@ -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++; diff --git a/Classes/Domain/Site/Site.php b/Classes/Domain/Site/Site.php index cc8c129..82f199b 100644 --- a/Classes/Domain/Site/Site.php +++ b/Classes/Domain/Site/Site.php @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\Domain\Site; ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Index\Queue\RecordMonitor\Helper\ConfigurationAwareRecordService; -use WapplerSystems\Meilisearch\NoSolrConnectionFoundException; +use WapplerSystems\Meilisearch\NoMeilisearchConnectionFoundException; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository; use TYPO3\CMS\Backend\Utility\BackendUtility; @@ -128,11 +128,11 @@ abstract class Site implements SiteInterface } /** - * Gets the site's Solr TypoScript configuration (plugin.tx_meilisearch.*) + * Gets the site's Meilisearch TypoScript configuration (plugin.tx_meilisearch.*) * - * @return \WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration The Solr TypoScript configuration + * @return \WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration The Meilisearch TypoScript configuration */ - public function getSolrConfiguration() + public function getMeilisearchConfiguration() { return $this->configuration; } @@ -167,12 +167,12 @@ abstract class Site implements SiteInterface $configurationAwareRecordService = GeneralUtility::makeInstance(ConfigurationAwareRecordService::class); // Fetch configuration in order to be able to read initialPagesAdditionalWhereClause - $solrConfiguration = $this->getSolrConfiguration(); - $indexQueueConfigurationName = $configurationAwareRecordService->getIndexingConfigurationName('pages', $this->rootPage['uid'], $solrConfiguration); + $meilisearchConfiguration = $this->getMeilisearchConfiguration(); + $indexQueueConfigurationName = $configurationAwareRecordService->getIndexingConfigurationName('pages', $this->rootPage['uid'], $meilisearchConfiguration); if ($indexQueueConfigurationName === null) { return $pageIds; } - $initialPagesAdditionalWhereClause = $solrConfiguration->getInitialPagesAdditionalWhereClause($indexQueueConfigurationName); + $initialPagesAdditionalWhereClause = $meilisearchConfiguration->getInitialPagesAdditionalWhereClause($indexQueueConfigurationName); return array_merge($pageIds, $this->pagesRepository->findAllSubPageIdsByRootPage($rootPageId, $maxDepth, $initialPagesAdditionalWhereClause)); } @@ -241,26 +241,26 @@ abstract class Site implements SiteInterface /** * @return array - * @throws NoSolrConnectionFoundException + * @throws NoMeilisearchConnectionFoundException */ - public function getAllSolrConnectionConfigurations(): array { + public function getAllMeilisearchConnectionConfigurations(): array { $configs = []; foreach ($this->getAvailableLanguageIds() as $languageId) { try { - $configs[$languageId] = $this->getSolrConnectionConfiguration($languageId); - } catch (NoSolrConnectionFoundException $e) {} + $configs[$languageId] = $this->getMeilisearchConnectionConfiguration($languageId); + } catch (NoMeilisearchConnectionFoundException $e) {} } return $configs; } public function isEnabled(): bool { - return !empty($this->getAllSolrConnectionConfigurations()); + return !empty($this->getAllMeilisearchConnectionConfigurations()); } /** * @param int $languageId * @return array */ - abstract function getSolrConnectionConfiguration(int $language = 0): array; + abstract function getMeilisearchConnectionConfiguration(int $language = 0): array; } diff --git a/Classes/Domain/Site/SiteHashService.php b/Classes/Domain/Site/SiteHashService.php index 80c9773..e59b9f7 100644 --- a/Classes/Domain/Site/SiteHashService.php +++ b/Classes/Domain/Site/SiteHashService.php @@ -40,8 +40,8 @@ class SiteHashService /** * Resolves magic keywords in allowed sites configuration. * Supported keywords: - * __solr_current_site - The domain of the site the query has been started from - * __current_site - Same as __solr_current_site + * __meilisearch_current_site - The domain of the site the query has been started from + * __current_site - Same as __meilisearch_current_site * __all - Adds all domains as allowed sites * * - Means all sites are allowed, same as no siteHash * @@ -56,8 +56,8 @@ class SiteHashService } elseif ($allowedSitesConfiguration === '*') { return '*'; } else { - // we thread empty allowed site configurations as __solr_current_site since this is the default behaviour - $allowedSitesConfiguration = empty($allowedSitesConfiguration) ? '__solr_current_site' : $allowedSitesConfiguration; + // we thread empty allowed site configurations as __meilisearch_current_site since this is the default behaviour + $allowedSitesConfiguration = empty($allowedSitesConfiguration) ? '__meilisearch_current_site' : $allowedSitesConfiguration; return $this->getDomainByPageIdAndReplaceMarkers($pageId, $allowedSitesConfiguration); } } @@ -98,7 +98,7 @@ class SiteHashService } /** - * Retrieves the domain of the site that belongs to the passed pageId and replaces their markers __solr_current_site + * Retrieves the domain of the site that belongs to the passed pageId and replaces their markers __meilisearch_current_site * and __current_site. * * @param integer $pageId @@ -108,7 +108,7 @@ class SiteHashService protected function getDomainByPageIdAndReplaceMarkers($pageId, $allowedSitesConfiguration) { $domainOfPage = $this->getSiteByPageId($pageId)->getDomain(); - $allowedSites = str_replace(['__solr_current_site', '__current_site'], $domainOfPage, $allowedSitesConfiguration); + $allowedSites = str_replace(['__meilisearch_current_site', '__current_site'], $domainOfPage, $allowedSitesConfiguration); return (string)$allowedSites; } diff --git a/Classes/Domain/Site/SiteInterface.php b/Classes/Domain/Site/SiteInterface.php index 1648240..d8ef4c6 100644 --- a/Classes/Domain/Site/SiteInterface.php +++ b/Classes/Domain/Site/SiteInterface.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\Domain\Site; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\NoSolrConnectionFoundException; +use WapplerSystems\Meilisearch\NoMeilisearchConnectionFoundException; interface SiteInterface { @@ -52,11 +52,11 @@ interface SiteInterface public function getLabel(); /** - * Gets the site's Solr TypoScript configuration (plugin.tx_meilisearch.*) + * Gets the site's Meilisearch TypoScript configuration (plugin.tx_meilisearch.*) * - * @return \WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration The Solr TypoScript configuration + * @return \WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration The Meilisearch TypoScript configuration */ - public function getSolrConfiguration(); + public function getMeilisearchConfiguration(); /** * Gets the site's default language as configured in @@ -114,15 +114,15 @@ interface SiteInterface /** * @param int $language * @return array - * @throws NoSolrConnectionFoundException + * @throws NoMeilisearchConnectionFoundException */ - public function getSolrConnectionConfiguration(int $language = 0): array; + public function getMeilisearchConnectionConfiguration(int $language = 0): array; /** * @return array - * @throws NoSolrConnectionFoundException + * @throws NoMeilisearchConnectionFoundException */ - public function getAllSolrConnectionConfigurations(): array; + public function getAllMeilisearchConnectionConfigurations(): array; public function isEnabled(): bool; } diff --git a/Classes/Domain/Site/SiteRepository.php b/Classes/Domain/Site/SiteRepository.php index 69f0dab..29cab0e 100644 --- a/Classes/Domain/Site/SiteRepository.php +++ b/Classes/Domain/Site/SiteRepository.php @@ -152,7 +152,7 @@ class SiteRepository } /** - * Gets all available TYPO3 sites with Solr configured. + * Gets all available TYPO3 sites with Meilisearch configured. * * @param bool $stopOnInvalidSite * @throws \Exception @@ -180,18 +180,18 @@ class SiteRepository */ protected function getAvailableTYPO3ManagedSites(bool $stopOnInvalidSite): array { - $typo3ManagedSolrSites = []; + $typo3ManagedMeilisearchSites = []; $typo3Sites = $this->siteFinder->getAllSites(); foreach ($typo3Sites as $typo3Site) { try { $rootPageId = $typo3Site->getRootPageId(); - if (isset($typo3ManagedSolrSites[$rootPageId])) { + if (isset($typo3ManagedMeilisearchSites[$rootPageId])) { //get each site only once continue; } - $typo3ManagedSolrSite = $this->buildSite($rootPageId); - if ($typo3ManagedSolrSite->isEnabled()) { - $typo3ManagedSolrSites[$rootPageId] = $typo3ManagedSolrSite; + $typo3ManagedMeilisearchSite = $this->buildSite($rootPageId); + if ($typo3ManagedMeilisearchSite->isEnabled()) { + $typo3ManagedMeilisearchSites[$rootPageId] = $typo3ManagedMeilisearchSite; } } catch (\Exception $e) { @@ -200,7 +200,7 @@ class SiteRepository } } } - return $typo3ManagedSolrSites; + return $typo3ManagedMeilisearchSites; } /** @@ -262,7 +262,7 @@ class SiteRepository */ protected function buildTypo3ManagedSite(array $rootPageRecord): ?Typo3ManagedSite { - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($rootPageRecord['uid']); + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($rootPageRecord['uid']); /** @var \TYPO3\CMS\Core\Site\Entity\Site $typo3Site */ try { $typo3Site = $this->siteFinder->getSiteByPageId($rootPageRecord['uid']); @@ -278,36 +278,26 @@ class SiteRepository return $language->getLanguageId(); }, $typo3Site->getLanguages()); - $solrConnectionConfigurations = []; + $meilisearchConnectionConfigurations = []; foreach ($availableLanguageIds as $languageUid) { - $solrEnabled = SiteUtility::getConnectionProperty($typo3Site, 'enabled', $languageUid, 'read', true); - if ($solrEnabled) { - $solrConnectionConfigurations[$languageUid] = [ + $meilisearchEnabled = SiteUtility::getConnectionProperty($typo3Site, 'enabled', $languageUid, 'read', true); + if ($meilisearchEnabled) { + $meilisearchConnectionConfigurations[$languageUid] = [ 'connectionKey' => $rootPageRecord['uid'] . '|' . $languageUid, 'rootPageTitle' => $rootPageRecord['title'], 'rootPageUid' => $rootPageRecord['uid'], 'read' => [ 'scheme' => SiteUtility::getConnectionProperty($typo3Site, 'scheme', $languageUid, 'read', 'http'), 'host' => SiteUtility::getConnectionProperty($typo3Site, 'host', $languageUid, 'read', 'localhost'), - 'port' => (int)SiteUtility::getConnectionProperty($typo3Site, 'port', $languageUid, 'read', 8983), - // @todo: transform core to path - 'path' => - SiteUtility::getConnectionProperty($typo3Site, 'path', $languageUid, 'read', '/solr/') . - SiteUtility::getConnectionProperty($typo3Site, 'core', $languageUid, 'read', 'core_en') . '/' , - 'username' => SiteUtility::getConnectionProperty($typo3Site, 'username', $languageUid, 'read', ''), - 'password' => SiteUtility::getConnectionProperty($typo3Site, 'password', $languageUid, 'read', '') + 'port' => (int)SiteUtility::getConnectionProperty($typo3Site, 'port', $languageUid, 'read', 7700), + 'apiKey' => SiteUtility::getConnectionProperty($typo3Site, 'apiKey', $languageUid, 'read', ''), ], 'write' => [ 'scheme' => SiteUtility::getConnectionProperty($typo3Site, 'scheme', $languageUid, 'write', 'http'), 'host' => SiteUtility::getConnectionProperty($typo3Site, 'host', $languageUid, 'write', 'localhost'), - 'port' => (int)SiteUtility::getConnectionProperty($typo3Site, 'port', $languageUid, 'write', 8983), - // @todo: transform core to path - 'path' => - SiteUtility::getConnectionProperty($typo3Site, 'path', $languageUid, 'read', '/solr/') . - SiteUtility::getConnectionProperty($typo3Site, 'core', $languageUid, 'read', 'core_en') . '/' , - 'username' => SiteUtility::getConnectionProperty($typo3Site, 'username', $languageUid, 'write', ''), - 'password' => SiteUtility::getConnectionProperty($typo3Site, 'password', $languageUid, 'write', '') + 'port' => (int)SiteUtility::getConnectionProperty($typo3Site, 'port', $languageUid, 'write', 7700), + 'apiKey' => SiteUtility::getConnectionProperty($typo3Site, 'apiKey', $languageUid, 'write', ''), ], 'language' => $languageUid @@ -318,7 +308,7 @@ class SiteRepository return GeneralUtility::makeInstance( Typo3ManagedSite::class, /** @scrutinizer ignore-type */ - $solrConfiguration, + $meilisearchConfiguration, /** @scrutinizer ignore-type */ $rootPageRecord, /** @scrutinizer ignore-type */ @@ -332,7 +322,7 @@ class SiteRepository /** @scrutinizer ignore-type */ $availableLanguageIds, /** @scrutinizer ignore-type */ - $solrConnectionConfigurations, + $meilisearchConnectionConfigurations, /** @scrutinizer ignore-type */ $typo3Site ); diff --git a/Classes/Domain/Site/Typo3ManagedSite.php b/Classes/Domain/Site/Typo3ManagedSite.php index 2104aa2..16868e9 100644 --- a/Classes/Domain/Site/Typo3ManagedSite.php +++ b/Classes/Domain/Site/Typo3ManagedSite.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\Domain\Site; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\NoSolrConnectionFoundException; +use WapplerSystems\Meilisearch\NoMeilisearchConnectionFoundException; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository; use TYPO3\CMS\Core\Context\LanguageAspectFactory; @@ -47,12 +47,12 @@ class Typo3ManagedSite extends Site /** * @var array */ - protected $solrConnectionConfigurations; + protected $meilisearchConnectionConfigurations; public function __construct( TypoScriptConfiguration $configuration, - array $page, $domain, $siteHash, PagesRepository $pagesRepository = null, $defaultLanguageId = 0, $availableLanguageIds = [], array $solrConnectionConfigurations = [], Typo3Site $typo3SiteObject = null) + array $page, $domain, $siteHash, PagesRepository $pagesRepository = null, $defaultLanguageId = 0, $availableLanguageIds = [], array $meilisearchConnectionConfigurations = [], Typo3Site $typo3SiteObject = null) { $this->configuration = $configuration; $this->rootPage = $page; @@ -61,31 +61,31 @@ class Typo3ManagedSite extends Site $this->pagesRepository = $pagesRepository ?? GeneralUtility::makeInstance(PagesRepository::class); $this->defaultLanguageId = $defaultLanguageId; $this->availableLanguageIds = $availableLanguageIds; - $this->solrConnectionConfigurations = $solrConnectionConfigurations; + $this->meilisearchConnectionConfigurations = $meilisearchConnectionConfigurations; $this->typo3SiteObject = $typo3SiteObject; } /** * @param int $language * @return array - * @throws NoSolrConnectionFoundException + * @throws NoMeilisearchConnectionFoundException */ - public function getSolrConnectionConfiguration(int $language = 0): array + public function getMeilisearchConnectionConfiguration(int $language = 0): array { - if (!is_array($this->solrConnectionConfigurations[$language])) { - /* @var $noSolrConnectionException NoSolrConnectionFoundException */ - $noSolrConnectionException = GeneralUtility::makeInstance( - NoSolrConnectionFoundException::class, - /** @scrutinizer ignore-type */ 'Could not find a Solr connection for root page [' . $this->getRootPageId() . '] and language [' . $language . '].', + if (!is_array($this->meilisearchConnectionConfigurations[$language])) { + /* @var $noMeilisearchConnectionException NoMeilisearchConnectionFoundException */ + $noMeilisearchConnectionException = GeneralUtility::makeInstance( + NoMeilisearchConnectionFoundException::class, + /** @scrutinizer ignore-type */ 'Could not find a Meilisearch connection for root page [' . $this->getRootPageId() . '] and language [' . $language . '].', /** @scrutinizer ignore-type */ 1552491117 ); - $noSolrConnectionException->setRootPageId($this->getRootPageId()); - $noSolrConnectionException->setLanguageId($language); + $noMeilisearchConnectionException->setRootPageId($this->getRootPageId()); + $noMeilisearchConnectionException->setLanguageId($language); - throw $noSolrConnectionException; + throw $noMeilisearchConnectionException; } - return $this->solrConnectionConfigurations[$language]; + return $this->meilisearchConnectionConfigurations[$language]; } /** diff --git a/Classes/Domain/Variants/IdBuilder.php b/Classes/Domain/Variants/IdBuilder.php index d0dd711..c9e628c 100644 --- a/Classes/Domain/Variants/IdBuilder.php +++ b/Classes/Domain/Variants/IdBuilder.php @@ -67,11 +67,11 @@ class IdBuilder */ protected function applyHook($variantId, $systemHash, $type, $uid) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifyVariantId'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifyVariantId'])) { return $variantId; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifyVariantId'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifyVariantId'] as $classReference) { $variantIdModifier = GeneralUtility::makeInstance($classReference); if ($variantIdModifier instanceof IdModifier) { $variantId = $variantIdModifier->modifyVariantId($variantId, $systemHash, $type, $uid); diff --git a/Classes/Domain/Variants/VariantsProcessor.php b/Classes/Domain/Variants/VariantsProcessor.php index 996004d..c396347 100644 --- a/Classes/Domain/Variants/VariantsProcessor.php +++ b/Classes/Domain/Variants/VariantsProcessor.php @@ -30,11 +30,11 @@ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\SearchResultBuilde use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSetProcessor; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Builds the SearchResult objects from the solr response and assigns the created child SearchResult objects (the variants) + * Builds the SearchResult objects from the meilisearch response and assigns the created child SearchResult objects (the variants) * to the parent search result object. */ class VariantsProcessor implements SearchResultSetProcessor @@ -114,7 +114,7 @@ class VariantsProcessor implements SearchResultSetProcessor $fields = get_object_vars($variantDocumentArray); $variantDocument = new SearchResult($fields); - $variantSearchResult = $this->resultBuilder->fromApacheSolrDocument($variantDocument); + $variantSearchResult = $this->resultBuilder->fromApacheMeilisearchDocument($variantDocument); $variantSearchResult->setIsVariant(true); $variantSearchResult->setVariantParent($resultDocument); diff --git a/Classes/Eid/SiteHash.php b/Classes/Eid/SiteHash.php index 57dbd9b..61540a0 100644 --- a/Classes/Eid/SiteHash.php +++ b/Classes/Eid/SiteHash.php @@ -28,7 +28,7 @@ Provides the sitehash for a given domain, valid for the current TYPO3 installation. - Example: http://www.my-typo3-solr-installation.com/index.php?eID=tx_meilisearch_api&api=siteHash&apiKey=&domain=www.domain-to-index.com + Example: http://www.my-typo3-meilisearch-installation.com/index.php?eID=tx_meilisearch_api&api=siteHash&apiKey=&domain=www.domain-to-index.com */ diff --git a/Classes/FieldProcessor/AbstractHierarchyProcessor.php b/Classes/FieldProcessor/AbstractHierarchyProcessor.php index 2c6d040..064904f 100644 --- a/Classes/FieldProcessor/AbstractHierarchyProcessor.php +++ b/Classes/FieldProcessor/AbstractHierarchyProcessor.php @@ -33,13 +33,13 @@ abstract class AbstractHierarchyProcessor { /** - * Builds a Solr hierarchy from an array of uids that make up a rootline. + * Builds a Meilisearch hierarchy from an array of uids that make up a rootline. * * @param array $idRootline Array of Ids representing a rootline - * @return array Solr hierarchy - * @see http://wiki.apache.org/solr/HierarchicalFaceting + * @return array Meilisearch hierarchy + * @see http://wiki.apache.org/meilisearch/HierarchicalFaceting */ - protected function buildSolrHierarchyFromIdRootline(array $idRootline) + protected function buildMeilisearchHierarchyFromIdRootline(array $idRootline) { $hierarchy = []; diff --git a/Classes/FieldProcessor/CategoryUidToHierarchy.php b/Classes/FieldProcessor/CategoryUidToHierarchy.php index 501e2cf..df4b71c 100755 --- a/Classes/FieldProcessor/CategoryUidToHierarchy.php +++ b/Classes/FieldProcessor/CategoryUidToHierarchy.php @@ -27,9 +27,9 @@ use WapplerSystems\Meilisearch\System\Records\SystemCategory\SystemCategoryRepos use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * This Processor takes a UID of sys_category, and resolves its rootline in solr notation. + * This Processor takes a UID of sys_category, and resolves its rootline in meilisearch notation. * - * Format of this field corresponds to http://wiki.apache.org/solr/HierarchicalFaceting + * Format of this field corresponds to http://wiki.apache.org/meilisearch/HierarchicalFaceting * * Let's say we have a category with uid 111 which is a sub category like shown in this tree: * @@ -40,7 +40,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; * * then we get a rootline 1/10/100/111 * - * In Solr hierarchy notation, we get + * In Meilisearch hierarchy notation, we get * * 0-1 * 1-1/10 @@ -69,7 +69,7 @@ class CategoryUidToHierarchy extends AbstractHierarchyProcessor implements Field } /** - * Expects a uid ID of a category. Returns a Solr hierarchy notation for the + * Expects a uid ID of a category. Returns a Meilisearch hierarchy notation for the * rootline of the category ID. * * @param array $values Array of values, an array because of multivalued fields @@ -81,24 +81,24 @@ class CategoryUidToHierarchy extends AbstractHierarchyProcessor implements Field foreach ($values as $value) { $results = array_merge($results, - $this->getSolrRootlineForCategoryId($value)); + $this->getMeilisearchRootlineForCategoryId($value)); } return $results; } /** - * Returns a Solr hierarchy notation string for rootline of given category uid. + * Returns a Meilisearch hierarchy notation string for rootline of given category uid. * - * @param int $categoryId Category ID to get a rootline as Solr hierarchy for - * @return array Rootline as Solr hierarchy array + * @param int $categoryId Category ID to get a rootline as Meilisearch hierarchy for + * @return array Rootline as Meilisearch hierarchy array */ - protected function getSolrRootlineForCategoryId($categoryId) + protected function getMeilisearchRootlineForCategoryId($categoryId) { $categoryIdRootline = $this->buildCategoryIdRootline($categoryId); - $solrRootline = $this->buildSolrHierarchyFromIdRootline($categoryIdRootline); + $meilisearchRootline = $this->buildMeilisearchHierarchyFromIdRootline($categoryIdRootline); - return $solrRootline; + return $meilisearchRootline; } /** diff --git a/Classes/FieldProcessor/PageUidToHierarchy.php b/Classes/FieldProcessor/PageUidToHierarchy.php index 8c9191f..efc13c1 100644 --- a/Classes/FieldProcessor/PageUidToHierarchy.php +++ b/Classes/FieldProcessor/PageUidToHierarchy.php @@ -29,9 +29,9 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\RootlineUtility; /** - * This Processor takes a PID, and resolves its rootline in solr notation. + * This Processor takes a PID, and resolves its rootline in meilisearch notation. * - * Format of this field corresponds to http://wiki.apache.org/solr/HierarchicalFaceting + * Format of this field corresponds to http://wiki.apache.org/meilisearch/HierarchicalFaceting * * Let's say we have a record indexed on page 111 which is a sub page like shown in this page tree: * @@ -42,7 +42,7 @@ use TYPO3\CMS\Core\Utility\RootlineUtility; * * then we get a rootline 1/10/100/111 * - * In Solr hierarchy notation, we get + * In Meilisearch hierarchy notation, we get * * 0-1/ * 1-1/10/ @@ -57,7 +57,7 @@ class PageUidToHierarchy extends AbstractHierarchyProcessor implements FieldProc { /** - * Expects a page ID of a page. Returns a Solr hierarchy notation for the + * Expects a page ID of a page. Returns a Meilisearch hierarchy notation for the * rootline of the page ID. * * @param array $values Array of values, an array because of multivalued fields @@ -70,7 +70,7 @@ class PageUidToHierarchy extends AbstractHierarchyProcessor implements FieldProc foreach ($values as $value) { list($rootPageUid, $mountPoint) = GeneralUtility::trimExplode(',', $value, true, 2); - $results[] = $this->getSolrRootlineForPageId($rootPageUid, + $results[] = $this->getMeilisearchRootlineForPageId($rootPageUid, $mountPoint); } @@ -78,18 +78,18 @@ class PageUidToHierarchy extends AbstractHierarchyProcessor implements FieldProc } /** - * Returns a Solr hierarchy notation string for rootline of given PID. + * Returns a Meilisearch hierarchy notation string for rootline of given PID. * - * @param int $pageId Page ID to get a rootline as Solr hierarchy for + * @param int $pageId Page ID to get a rootline as Meilisearch hierarchy for * @param string $mountPoint The mount point parameter that will be used for building the rootline. - * @return array Rootline as Solr hierarchy array + * @return array Rootline as Meilisearch hierarchy array */ - protected function getSolrRootlineForPageId($pageId, $mountPoint = '') + protected function getMeilisearchRootlineForPageId($pageId, $mountPoint = '') { $pageIdRootline = $this->buildPageIdRootline($pageId, $mountPoint); - $solrRootline = $this->buildSolrHierarchyFromIdRootline($pageIdRootline); + $meilisearchRootline = $this->buildMeilisearchHierarchyFromIdRootline($pageIdRootline); - return $solrRootline; + return $meilisearchRootline; } /** diff --git a/Classes/FieldProcessor/PathToHierarchy.php b/Classes/FieldProcessor/PathToHierarchy.php index 18cf481..890b5d4 100644 --- a/Classes/FieldProcessor/PathToHierarchy.php +++ b/Classes/FieldProcessor/PathToHierarchy.php @@ -46,7 +46,7 @@ class PathToHierarchy implements FieldProcessor $results = []; foreach ($values as $value) { - $valueResults = $this->buildSolrHierarchyFromPath($value); + $valueResults = $this->buildMeilisearchHierarchyFromPath($value); $results = array_merge($results, $valueResults); } @@ -54,13 +54,13 @@ class PathToHierarchy implements FieldProcessor } /** - * Builds a Solr hierarchy from path string. + * Builds a Meilisearch hierarchy from path string. * * @param string $path path string - * @return array Solr hierarchy - * @see http://wiki.apache.org/solr/HierarchicalFaceting + * @return array Meilisearch hierarchy + * @see http://wiki.apache.org/meilisearch/HierarchicalFaceting */ - protected function buildSolrHierarchyFromPath($path) + protected function buildMeilisearchHierarchyFromPath($path) { $hierarchy = []; $path = HierarchyTool::substituteSlashes($path); diff --git a/Classes/FieldProcessor/Service.php b/Classes/FieldProcessor/Service.php index e5bcfc2..baab42b 100644 --- a/Classes/FieldProcessor/Service.php +++ b/Classes/FieldProcessor/Service.php @@ -29,11 +29,11 @@ use WapplerSystems\Meilisearch\FieldProcessor\PageUidToHierarchy; use WapplerSystems\Meilisearch\FieldProcessor\PathToHierarchy; use WapplerSystems\Meilisearch\FieldProcessor\TimestampToIsoDate; use WapplerSystems\Meilisearch\FieldProcessor\TimestampToUtcIsoDate; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Service class that modifies fields in a Apache Solr Document, used for + * Service class that modifies fields in a Meilisearch Document, used for * common field processing during indexing or resolving * * @author Daniel Poetzinger diff --git a/Classes/FieldProcessor/TimestampToIsoDate.php b/Classes/FieldProcessor/TimestampToIsoDate.php index 9deef95..96147be 100644 --- a/Classes/FieldProcessor/TimestampToIsoDate.php +++ b/Classes/FieldProcessor/TimestampToIsoDate.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\System\DateTime\FormatService; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * A field processor that converts timestamps to ISO dates as needed by Solr + * A field processor that converts timestamps to ISO dates as needed by Meilisearch * * @author Ingo Renner */ @@ -36,7 +36,7 @@ class TimestampToIsoDate implements FieldProcessor { /** - * Expects a timestamp and converts it to an ISO 8601 date as needed by Solr. + * Expects a timestamp and converts it to an ISO 8601 date as needed by Meilisearch. * * Example date output format: 1995-12-31T23:59:59Z * The trailing "Z" designates UTC time and is mandatory diff --git a/Classes/FieldProcessor/TimestampToUtcIsoDate.php b/Classes/FieldProcessor/TimestampToUtcIsoDate.php index 1a4e8de..26940cc 100644 --- a/Classes/FieldProcessor/TimestampToUtcIsoDate.php +++ b/Classes/FieldProcessor/TimestampToUtcIsoDate.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\System\DateTime\FormatService; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * A field processor that converts timestamps to ISO dates as needed by Solr + * A field processor that converts timestamps to ISO dates as needed by Meilisearch * * @author Andreas Allacher */ @@ -36,7 +36,7 @@ class TimestampToUtcIsoDate implements FieldProcessor { /** - * Expects a timestamp and converts it to an ISO 8601 date in UTC as needed by Solr. + * Expects a timestamp and converts it to an ISO 8601 date in UTC as needed by Meilisearch. * * Example date output format: 1995-12-31T23:59:59Z * The trailing "Z" designates UTC time and is mandatory diff --git a/Classes/FrontendEnvironment.php b/Classes/FrontendEnvironment.php index 0efba34..5215a65 100644 --- a/Classes/FrontendEnvironment.php +++ b/Classes/FrontendEnvironment.php @@ -119,7 +119,7 @@ class FrontendEnvironment implements SingletonInterface * @param ?int $language * @return TypoScriptConfiguration */ - public function getSolrConfigurationFromPageId($pageId, $language = 0): TypoScriptConfiguration + public function getMeilisearchConfigurationFromPageId($pageId, $language = 0): TypoScriptConfiguration { return $this->getConfigurationFromPageId($pageId, '', $language); } diff --git a/Classes/FrontendEnvironment/TypoScript.php b/Classes/FrontendEnvironment/TypoScript.php index 594db8b..3e245eb 100644 --- a/Classes/FrontendEnvironment/TypoScript.php +++ b/Classes/FrontendEnvironment/TypoScript.php @@ -24,10 +24,10 @@ class TypoScript implements SingletonInterface * Language usage may be disabled to get the default TypoScript * configuration. * - * @param int $pageId Id of the (root) page to get the Solr configuration from. + * @param int $pageId Id of the (root) page to get the Meilisearch configuration from. * @param string $path The TypoScript configuration path to retrieve. * @param int $language System language uid, optional, defaults to 0 - * @return TypoScriptConfiguration The Solr configuration for the requested tree. + * @return TypoScriptConfiguration The Meilisearch configuration for the requested tree. */ public function getConfigurationFromPageId($pageId, $path, $language = 0) { @@ -83,7 +83,7 @@ class TypoScript implements SingletonInterface } /** - * builds an configuration array, containing the solr configuration. + * builds an configuration array, containing the meilisearch configuration. * * @param integer $pageId * @param string $path diff --git a/Classes/GarbageCollector.php b/Classes/GarbageCollector.php index 0699112..3e84529 100644 --- a/Classes/GarbageCollector.php +++ b/Classes/GarbageCollector.php @@ -164,7 +164,7 @@ class GarbageCollector extends AbstractDataHandlerListener implements SingletonI // ...still needed? // must be removed from index since the pid changes and - // is part of the Solr document ID + // is part of the Meilisearch document ID $this->collectGarbage($table, $uid); // now re-index with new properties diff --git a/Classes/HtmlContentExtractor.php b/Classes/HtmlContentExtractor.php index a67195c..4b30f62 100644 --- a/Classes/HtmlContentExtractor.php +++ b/Classes/HtmlContentExtractor.php @@ -34,7 +34,7 @@ class HtmlContentExtractor { /** - * Unicode ranges which should get stripped before sending a document to solr. + * Unicode ranges which should get stripped before sending a document to meilisearch. * This is necessary if a document (PDF, etc.) contains unicode characters which * are valid in the font being used in the document but are not available in the * font being used for displaying results. @@ -63,7 +63,7 @@ class HtmlContentExtractor */ protected $content; /** - * Mapping of HTML tags to Solr document fields. + * Mapping of HTML tags to Meilisearch document fields. * * @var array */ @@ -104,7 +104,7 @@ class HtmlContentExtractor protected function getConfiguration() { if ($this->configuration == null) { - $this->configuration = Util::getSolrConfiguration(); + $this->configuration = Util::getMeilisearchConfiguration(); } return $this->configuration; @@ -121,7 +121,7 @@ class HtmlContentExtractor /** * Returns the cleaned indexable content from the page's HTML markup. * - * The content is cleaned from HTML tags and control chars Solr could + * The content is cleaned from HTML tags and control chars Meilisearch could * stumble on. * * @return string Indexable, cleaned content ready for indexing. @@ -165,7 +165,7 @@ class HtmlContentExtractor } /** - * Strips control characters that cause Jetty/Solr to fail. + * Strips control characters that cause Jetty/Meilisearch to fail. * * @param string $content the content to sanitize * @return string the sanitized content @@ -220,7 +220,7 @@ class HtmlContentExtractor /** * Extracts HTML tag content from tags in the content marked for indexing. * - * @return array A mapping of Solr document field names to content found in defined tags. + * @return array A mapping of Meilisearch document field names to content found in defined tags. */ public function getTagContent() { diff --git a/Classes/IndexQueue/AbstractIndexer.php b/Classes/IndexQueue/AbstractIndexer.php index 19e11bc..ac6a547 100644 --- a/Classes/IndexQueue/AbstractIndexer.php +++ b/Classes/IndexQueue/AbstractIndexer.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue; use WapplerSystems\Meilisearch\ContentObject\Classification; use WapplerSystems\Meilisearch\ContentObject\Multivalue; use WapplerSystems\Meilisearch\ContentObject\Relation; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -57,12 +57,12 @@ abstract class AbstractIndexer protected static $unAllowedOverrideFields = ['type']; /** - * @param string $solrFieldName + * @param string $meilisearchFieldName * @return bool */ - public static function isAllowedToOverrideField($solrFieldName) + public static function isAllowedToOverrideField($meilisearchFieldName) { - return !in_array($solrFieldName, static::$unAllowedOverrideFields); + return !in_array($meilisearchFieldName, static::$unAllowedOverrideFields); } /** @@ -76,28 +76,28 @@ abstract class AbstractIndexer protected function addDocumentFieldsFromTyposcript(Document $document, array $indexingConfiguration, array $data) { $data = static::addVirtualContentFieldToRecord($document, $data); - // mapping of record fields => solr document fields, resolving cObj - foreach ($indexingConfiguration as $solrFieldName => $recordFieldName) { + // mapping of record fields => meilisearch document fields, resolving cObj + foreach ($indexingConfiguration as $meilisearchFieldName => $recordFieldName) { if (is_array($recordFieldName)) { // configuration for a content object, skipping continue; } - if (!static::isAllowedToOverrideField($solrFieldName)) { + if (!static::isAllowedToOverrideField($meilisearchFieldName)) { throw new InvalidFieldNameException( - 'Must not overwrite field .' . $solrFieldName, + 'Must not overwrite field .' . $meilisearchFieldName, 1435441863 ); } - $fieldValue = $this->resolveFieldValue($indexingConfiguration, $solrFieldName, $data); + $fieldValue = $this->resolveFieldValue($indexingConfiguration, $meilisearchFieldName, $data); if (is_array($fieldValue)) { // multi value - $document->setField($solrFieldName, $fieldValue); + $document->setField($meilisearchFieldName, $fieldValue); } else { if ($fieldValue !== '' && $fieldValue !== null) { - $document->setField($solrFieldName, $fieldValue); + $document->setField($meilisearchFieldName, $fieldValue); } } } @@ -107,7 +107,7 @@ abstract class AbstractIndexer /** - * Add's the content of the field 'content' from the solr document as virtual field __solr_content in the record, + * Add's the content of the field 'content' from the meilisearch document as virtual field __meilisearch_content in the record, * to have it available in typoscript. * * @param Document $document @@ -117,7 +117,7 @@ abstract class AbstractIndexer public static function addVirtualContentFieldToRecord(Document $document, array $data): array { if (isset($document['content'])) { - $data['__solr_content'] = $document['content']; + $data['__meilisearch_content'] = $document['content']; return $data; } return $data; @@ -131,18 +131,18 @@ abstract class AbstractIndexer * is taken. * * @param array $indexingConfiguration Indexing configuration as defined in plugin.tx_meilisearch_index.queue.[indexingConfigurationName].fields - * @param string $solrFieldName A Solr field name that is configured in the indexing configuration + * @param string $meilisearchFieldName A Meilisearch field name that is configured in the indexing configuration * @param array $data A record or item's data * @return string The resolved string value to be indexed */ protected function resolveFieldValue( array $indexingConfiguration, - $solrFieldName, + $meilisearchFieldName, array $data ) { $contentObject = GeneralUtility::makeInstance(ContentObjectRenderer::class); - if (isset($indexingConfiguration[$solrFieldName . '.'])) { + if (isset($indexingConfiguration[$meilisearchFieldName . '.'])) { // configuration found => need to resolve a cObj // need to change directory to make IMAGE content objects work in BE context @@ -152,21 +152,21 @@ abstract class AbstractIndexer $contentObject->start($data, $this->type); $fieldValue = $contentObject->cObjGetSingle( - $indexingConfiguration[$solrFieldName], - $indexingConfiguration[$solrFieldName . '.'] + $indexingConfiguration[$meilisearchFieldName], + $indexingConfiguration[$meilisearchFieldName . '.'] ); chdir($backupWorkingDirectory); if ($this->isSerializedValue($indexingConfiguration, - $solrFieldName) + $meilisearchFieldName) ) { $fieldValue = unserialize($fieldValue); } - } elseif (substr($indexingConfiguration[$solrFieldName], 0, + } elseif (substr($indexingConfiguration[$meilisearchFieldName], 0, 1) === '<' ) { - $referencedTsPath = trim(substr($indexingConfiguration[$solrFieldName], + $referencedTsPath = trim(substr($indexingConfiguration[$meilisearchFieldName], 1)); $typoScriptParser = GeneralUtility::makeInstance(TypoScriptParser::class); // $name and $conf is loaded with the referenced values. @@ -184,18 +184,18 @@ abstract class AbstractIndexer chdir($backupWorkingDirectory); if ($this->isSerializedValue($indexingConfiguration, - $solrFieldName) + $meilisearchFieldName) ) { $fieldValue = unserialize($fieldValue); } } else { - $fieldValue = $data[$indexingConfiguration[$solrFieldName]]; + $fieldValue = $data[$indexingConfiguration[$meilisearchFieldName]]; } // detect and correct type for dynamic fields // find last underscore, substr from there, cut off last character (S/M) - $fieldType = substr($solrFieldName, strrpos($solrFieldName, '_') + 1, + $fieldType = substr($meilisearchFieldName, strrpos($meilisearchFieldName, '_') + 1, -1); if (is_array($fieldValue)) { foreach ($fieldValue as $key => $value) { @@ -217,17 +217,17 @@ abstract class AbstractIndexer * unserialized. * * @param array $indexingConfiguration Current item's indexing configuration - * @param string $solrFieldName Current field being indexed + * @param string $meilisearchFieldName Current field being indexed * @return bool TRUE if the value is expected to be serialized, FALSE otherwise */ - public static function isSerializedValue(array $indexingConfiguration, $solrFieldName) + public static function isSerializedValue(array $indexingConfiguration, $meilisearchFieldName) { - $isSerialized = static::isSerializedResultFromRegisteredHook($indexingConfiguration, $solrFieldName); + $isSerialized = static::isSerializedResultFromRegisteredHook($indexingConfiguration, $meilisearchFieldName); if ($isSerialized === true) { return $isSerialized; } - $isSerialized = static::isSerializedResultFromCustomContentElement($indexingConfiguration, $solrFieldName); + $isSerialized = static::isSerializedResultFromCustomContentElement($indexingConfiguration, $meilisearchFieldName); return $isSerialized; } @@ -235,25 +235,25 @@ abstract class AbstractIndexer * Checks if the response comes from a custom content element that returns a serialized value. * * @param array $indexingConfiguration - * @param string $solrFieldName + * @param string $meilisearchFieldName * @return bool */ - protected static function isSerializedResultFromCustomContentElement(array $indexingConfiguration, $solrFieldName): bool + protected static function isSerializedResultFromCustomContentElement(array $indexingConfiguration, $meilisearchFieldName): bool { $isSerialized = false; // SOLR_CLASSIFICATION - always returns serialized array - if ($indexingConfiguration[$solrFieldName] == Classification::CONTENT_OBJECT_NAME) { + if ($indexingConfiguration[$meilisearchFieldName] == Classification::CONTENT_OBJECT_NAME) { $isSerialized = true; } // SOLR_MULTIVALUE - always returns serialized array - if ($indexingConfiguration[$solrFieldName] == Multivalue::CONTENT_OBJECT_NAME) { + if ($indexingConfiguration[$meilisearchFieldName] == Multivalue::CONTENT_OBJECT_NAME) { $isSerialized = true; } // SOLR_RELATION - returns serialized array if multiValue option is set - if ($indexingConfiguration[$solrFieldName] == Relation::CONTENT_OBJECT_NAME && !empty($indexingConfiguration[$solrFieldName . '.']['multiValue'])) { + if ($indexingConfiguration[$meilisearchFieldName] == Relation::CONTENT_OBJECT_NAME && !empty($indexingConfiguration[$meilisearchFieldName . '.']['multiValue'])) { $isSerialized = true; } @@ -264,23 +264,23 @@ abstract class AbstractIndexer * Checks registered hooks if a SerializedValueDetector detects a serialized response. * * @param array $indexingConfiguration - * @param string $solrFieldName + * @param string $meilisearchFieldName * @return bool */ - protected static function isSerializedResultFromRegisteredHook(array $indexingConfiguration, $solrFieldName) + protected static function isSerializedResultFromRegisteredHook(array $indexingConfiguration, $meilisearchFieldName) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['detectSerializedValue'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['detectSerializedValue'])) { return false; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['detectSerializedValue'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['detectSerializedValue'] as $classReference) { $serializedValueDetector = GeneralUtility::makeInstance($classReference); if (!$serializedValueDetector instanceof SerializedValueDetector) { $message = get_class($serializedValueDetector) . ' must implement interface ' . SerializedValueDetector::class; throw new \UnexpectedValueException($message, 1404471741); } - $isSerialized = (boolean)$serializedValueDetector->isSerializedValue($indexingConfiguration, $solrFieldName); + $isSerialized = (boolean)$serializedValueDetector->isSerializedValue($indexingConfiguration, $meilisearchFieldName); if ($isSerialized) { return true; } diff --git a/Classes/IndexQueue/AdditionalIndexQueueItemIndexer.php b/Classes/IndexQueue/AdditionalIndexQueueItemIndexer.php index a7db87d..9b328d2 100644 --- a/Classes/IndexQueue/AdditionalIndexQueueItemIndexer.php +++ b/Classes/IndexQueue/AdditionalIndexQueueItemIndexer.php @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue; * * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; /** * Interface that defines the method an indexer must implement to provide diff --git a/Classes/IndexQueue/Exception/DocumentPreparationException.php b/Classes/IndexQueue/Exception/DocumentPreparationException.php index 906fbfd..7876f65 100644 --- a/Classes/IndexQueue/Exception/DocumentPreparationException.php +++ b/Classes/IndexQueue/Exception/DocumentPreparationException.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue\Exception; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * * All rights reserved * diff --git a/Classes/IndexQueue/Exception/IndexingException.php b/Classes/IndexQueue/Exception/IndexingException.php index 91c99ac..9e06e0f 100644 --- a/Classes/IndexQueue/Exception/IndexingException.php +++ b/Classes/IndexQueue/Exception/IndexingException.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue\Exception; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * * All rights reserved * diff --git a/Classes/IndexQueue/FrontendHelper/AbstractFrontendHelper.php b/Classes/IndexQueue/FrontendHelper/AbstractFrontendHelper.php index 7eb0401..973c730 100644 --- a/Classes/IndexQueue/FrontendHelper/AbstractFrontendHelper.php +++ b/Classes/IndexQueue/FrontendHelper/AbstractFrontendHelper.php @@ -26,7 +26,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue\FrontendHelper; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerRequest; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerResponse; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; @@ -59,7 +59,7 @@ abstract class AbstractFrontendHelper implements FrontendHelper protected $action = null; /** - * @var SolrLogManager + * @var MeilisearchLogManager */ protected $logger = null; @@ -99,11 +99,11 @@ abstract class AbstractFrontendHelper implements FrontendHelper ) { $this->request = $request; $this->response = $response; - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); if ($request->getParameter('loggingEnabled')) { $this->logger->log( - SolrLogManager::INFO, + MeilisearchLogManager::INFO, 'Page indexer request received', [ 'request' => (array)$request, diff --git a/Classes/IndexQueue/FrontendHelper/AuthorizationService.php b/Classes/IndexQueue/FrontendHelper/AuthorizationService.php index c0af076..ba99a72 100644 --- a/Classes/IndexQueue/FrontendHelper/AuthorizationService.php +++ b/Classes/IndexQueue/FrontendHelper/AuthorizationService.php @@ -45,7 +45,7 @@ class AuthorizationService extends AbstractAuthenticationService * * @var string */ - const SOLR_INDEXER_USERNAME = '__SolrIndexerUser__'; + const SOLR_INDEXER_USERNAME = '__MeilisearchIndexerUser__'; /** * Gets a fake frontend user record to allow access to protected pages. @@ -115,7 +115,7 @@ class AuthorizationService extends AbstractAuthenticationService $groupData[] = [ 'uid' => $groupId, 'pid' => 0, - 'title' => '__SolrIndexerGroup__', + 'title' => '__MeilisearchIndexerGroup__', 'TSconfig' => '' ]; } diff --git a/Classes/IndexQueue/FrontendHelper/PageFieldMappingIndexer.php b/Classes/IndexQueue/FrontendHelper/PageFieldMappingIndexer.php index c5dd364..735eb96 100644 --- a/Classes/IndexQueue/FrontendHelper/PageFieldMappingIndexer.php +++ b/Classes/IndexQueue/FrontendHelper/PageFieldMappingIndexer.php @@ -29,7 +29,7 @@ use WapplerSystems\Meilisearch\IndexQueue\AbstractIndexer; use WapplerSystems\Meilisearch\IndexQueue\InvalidFieldNameException; use WapplerSystems\Meilisearch\SubstitutePageIndexer; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use WapplerSystems\Meilisearch\Util; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -57,7 +57,7 @@ class PageFieldMappingIndexer implements SubstitutePageIndexer */ public function __construct(TypoScriptConfiguration $configuration = null) { - $this->configuration = $configuration == null ? Util::getSolrConfiguration() : $configuration; + $this->configuration = $configuration == null ? Util::getMeilisearchConfiguration() : $configuration; } /** @@ -75,7 +75,7 @@ class PageFieldMappingIndexer implements SubstitutePageIndexer * plugin.tx_meilisearch.index.queue.pages.fields. * * @param Document $pageDocument The original page document. - * @return Document A Apache Solr Document object that replace the default page document + * @return Document A Meilisearch Document object that replace the default page document */ public function getPageDocument(Document $pageDocument) { @@ -131,16 +131,16 @@ class PageFieldMappingIndexer implements SubstitutePageIndexer * Allows to put the page record through cObj processing if wanted / needed. * Otherwise the plain page record field value is used. * - * @param string $solrFieldName The Solr field name to resolve the value from the item's record + * @param string $meilisearchFieldName The Meilisearch field name to resolve the value from the item's record * @return string The resolved string value to be indexed */ - protected function resolveFieldValue($solrFieldName, Document $pageDocument) + protected function resolveFieldValue($meilisearchFieldName, Document $pageDocument) { $pageRecord = $GLOBALS['TSFE']->page; $pageIndexingConfiguration = $this->configuration->getIndexQueueFieldsConfigurationByConfigurationName($this->pageIndexingConfigurationName); - if (isset($pageIndexingConfiguration[$solrFieldName . '.'])) { + if (isset($pageIndexingConfiguration[$meilisearchFieldName . '.'])) { $pageRecord = AbstractIndexer::addVirtualContentFieldToRecord($pageDocument, $pageRecord); // configuration found => need to resolve a cObj @@ -148,15 +148,15 @@ class PageFieldMappingIndexer implements SubstitutePageIndexer $contentObject->start($pageRecord, 'pages'); $fieldValue = $contentObject->cObjGetSingle( - $pageIndexingConfiguration[$solrFieldName], - $pageIndexingConfiguration[$solrFieldName . '.'] + $pageIndexingConfiguration[$meilisearchFieldName], + $pageIndexingConfiguration[$meilisearchFieldName . '.'] ); - if (AbstractIndexer::isSerializedValue($pageIndexingConfiguration, $solrFieldName)) { + if (AbstractIndexer::isSerializedValue($pageIndexingConfiguration, $meilisearchFieldName)) { $fieldValue = unserialize($fieldValue); } } else { - $fieldValue = $pageRecord[$pageIndexingConfiguration[$solrFieldName]]; + $fieldValue = $pageRecord[$pageIndexingConfiguration[$meilisearchFieldName]]; } return $fieldValue; diff --git a/Classes/IndexQueue/FrontendHelper/PageIndexer.php b/Classes/IndexQueue/FrontendHelper/PageIndexer.php index e6bd39b..8be9ff1 100644 --- a/Classes/IndexQueue/FrontendHelper/PageIndexer.php +++ b/Classes/IndexQueue/FrontendHelper/PageIndexer.php @@ -29,9 +29,9 @@ use WapplerSystems\Meilisearch\Access\Rootline; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\IndexQueue\Item; use WapplerSystems\Meilisearch\IndexQueue\Queue; -use WapplerSystems\Meilisearch\NoSolrConnectionFoundException; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\NoMeilisearchConnectionFoundException; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use WapplerSystems\Meilisearch\Typo3PageIndexer; use WapplerSystems\Meilisearch\Util; use Exception; @@ -91,7 +91,7 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing'][__CLASS__] = $pageIndexingHookRegistration; // indexes fields defined in plugin.tx_meilisearch.index.queue.pages.fields - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPageSubstitutePageDocument'][PageFieldMappingIndexer::class] = PageFieldMappingIndexer::class; + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPageSubstitutePageDocument'][PageFieldMappingIndexer::class] = PageFieldMappingIndexer::class; $this->registerAuthorizationService(); } @@ -170,13 +170,13 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface $overrulingPriority = $this->getHighestAuthenticationServicePriority() + 1; ExtensionManagementUtility::addService( - 'solr', // extension key + 'meilisearch', // extension key 'auth', // service type AuthorizationService::class, // service key [// service meta data - 'title' => 'Solr Indexer Authorization', - 'description' => 'Authorizes the Solr Index Queue indexer to access protected pages.', + 'title' => 'Meilisearch Indexer Authorization', + 'description' => 'Authorizes the Meilisearch Index Queue indexer to access protected pages.', 'subtype' => 'getUserFE,authUserFE,getGroupsFE', @@ -187,7 +187,7 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface 'os' => '', 'exec' => '', - 'classFile' => ExtensionManagementUtility::extPath('solr') . 'Classes/IndexQueue/FrontendHelper/AuthorizationService.php', + 'classFile' => ExtensionManagementUtility::extPath('meilisearch') . 'Classes/IndexQueue/FrontendHelper/AuthorizationService.php', 'className' => AuthorizationService::class, ] ); @@ -263,16 +263,16 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface */ public function hook_indexContent(TypoScriptFrontendController $page) { - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->page = $page; - $configuration = Util::getSolrConfiguration(); + $configuration = Util::getMeilisearchConfiguration(); $logPageIndexed = $configuration->getLoggingIndexingPageIndexed(); if (!$this->page->config['config']['index_enable']) { if ($logPageIndexed) { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Indexing is disabled. Set config.index_enable = 1 .' ); } @@ -285,32 +285,32 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface throw new UnexpectedValueException('Can not get index queue item', 1482162337); } - $solrConnection = $this->getSolrConnection($indexQueueItem); + $meilisearchConnection = $this->getMeilisearchConnection($indexQueueItem); /** @var $indexer Typo3PageIndexer */ $indexer = GeneralUtility::makeInstance(Typo3PageIndexer::class, /** @scrutinizer ignore-type */ $page); - $indexer->setSolrConnection($solrConnection); + $indexer->setMeilisearchConnection($meilisearchConnection); $indexer->setPageAccessRootline($this->getAccessRootline()); $indexer->setPageUrl($this->generatePageUrl()); $indexer->setMountPointParameter($GLOBALS['TSFE']->MP); $indexer->setIndexQueueItem($indexQueueItem); $this->responseData['pageIndexed'] = (int)$indexer->indexPage(); - $this->responseData['originalPageDocument'] = (array)$indexer->getPageSolrDocument(); - $this->responseData['solrConnection'] = [ + $this->responseData['originalPageDocument'] = (array)$indexer->getPageMeilisearchDocument(); + $this->responseData['meilisearchConnection'] = [ 'rootPage' => $indexQueueItem->getRootPageUid(), 'sys_language_uid' => Util::getLanguageUid(), - 'solr' => (string)$solrConnection->getNode('write') + 'meilisearch' => (string)$meilisearchConnection->getNode('write') ]; - $documentsSentToSolr = $indexer->getDocumentsSentToSolr(); - foreach ($documentsSentToSolr as $document) { - $this->responseData['documentsSentToSolr'][] = (array)$document; + $documentsSentToMeilisearch = $indexer->getDocumentsSentToMeilisearch(); + foreach ($documentsSentToMeilisearch as $document) { + $this->responseData['documentsSentToMeilisearch'][] = (array)$document; } } catch (Exception $e) { if ($configuration->getLoggingExceptions()) { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Exception while trying to index page ' . $page->id, [ $e->__toString() @@ -321,7 +321,7 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface if ($logPageIndexed) { $success = $this->responseData['pageIndexed'] ? 'Success' : 'Failed'; - $severity = $this->responseData['pageIndexed'] ? SolrLogManager::NOTICE : SolrLogManager::ERROR; + $severity = $this->responseData['pageIndexed'] ? MeilisearchLogManager::NOTICE : MeilisearchLogManager::ERROR; $this->logger->log( $severity, @@ -332,14 +332,14 @@ class PageIndexer extends AbstractFrontendHelper implements SingletonInterface } /** - * Gets the solr connection to use for indexing the page based on the + * Gets the meilisearch connection to use for indexing the page based on the * Index Queue item's properties. * * @param Item $indexQueueItem - * @return SolrConnection Solr server connection - * @throws NoSolrConnectionFoundException + * @return MeilisearchConnection Meilisearch server connection + * @throws NoMeilisearchConnectionFoundException */ - protected function getSolrConnection(Item $indexQueueItem) + protected function getMeilisearchConnection(Item $indexQueueItem) { /** @var $connectionManager ConnectionManager */ $connectionManager = GeneralUtility::makeInstance(ConnectionManager::class); diff --git a/Classes/IndexQueue/FrontendHelper/UserGroupDetector.php b/Classes/IndexQueue/FrontendHelper/UserGroupDetector.php index e3b002c..c303fd4 100644 --- a/Classes/IndexQueue/FrontendHelper/UserGroupDetector.php +++ b/Classes/IndexQueue/FrontendHelper/UserGroupDetector.php @@ -24,7 +24,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue\FrontendHelper; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\ContentObject\ContentObjectPostInitHookInterface; @@ -66,7 +66,7 @@ class UserGroupDetector extends AbstractFrontendHelper implements protected $frontendGroups = []; /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -202,7 +202,7 @@ class UserGroupDetector extends AbstractFrontendHelper implements } else { if ($this->request->getParameter('loggingEnabled')) { $this->logger->log( - SolrLogManager::INFO, + MeilisearchLogManager::INFO, 'Access restriction found', [ 'groups' => $frontendGroups, diff --git a/Classes/IndexQueue/Indexer.php b/Classes/IndexQueue/Indexer.php index 5cf3748..eef2398 100644 --- a/Classes/IndexQueue/Indexer.php +++ b/Classes/IndexQueue/Indexer.php @@ -25,16 +25,16 @@ namespace WapplerSystems\Meilisearch\IndexQueue; ***************************************************************/ use WapplerSystems\Meilisearch\ConnectionManager; -use WapplerSystems\Meilisearch\Domain\Search\ApacheSolrDocument\Builder; +use WapplerSystems\Meilisearch\Domain\Search\ApacheMeilisearchDocument\Builder; use WapplerSystems\Meilisearch\FieldProcessor\Service; use WapplerSystems\Meilisearch\FrontendEnvironment; -use WapplerSystems\Meilisearch\NoSolrConnectionFoundException; +use WapplerSystems\Meilisearch\NoMeilisearchConnectionFoundException; use WapplerSystems\Meilisearch\Domain\Site\Site; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use Exception; use RuntimeException; use Solarium\Exception\HttpException; @@ -61,11 +61,11 @@ class Indexer extends AbstractIndexer # TODO change to singular $document instead of plural $documents /** - * A Solr service instance to interact with the Solr server + * A Meilisearch service instance to interact with the Meilisearch server * - * @var SolrConnection + * @var MeilisearchConnection */ - protected $solr; + protected $meilisearch; /** * @var ConnectionManager @@ -87,7 +87,7 @@ class Indexer extends AbstractIndexer protected $loggingEnabled = false; /** - * @var SolrLogManager + * @var MeilisearchLogManager */ protected $logger = null; @@ -112,7 +112,7 @@ class Indexer extends AbstractIndexer * @param array $options array of indexer options * @param PagesRepository|null $pagesRepository * @param Builder|null $documentBuilder - * @param SolrLogManager|null $logger + * @param MeilisearchLogManager|null $logger * @param ConnectionManager|null $connectionManager * @param FrontendEnvironment|null $frontendEnvironment */ @@ -120,7 +120,7 @@ class Indexer extends AbstractIndexer array $options = [], PagesRepository $pagesRepository = null, Builder $documentBuilder = null, - SolrLogManager $logger = null, + MeilisearchLogManager $logger = null, ConnectionManager $connectionManager = null, FrontendEnvironment $frontendEnvironment = null ) @@ -128,7 +128,7 @@ class Indexer extends AbstractIndexer $this->options = $options; $this->pagesRepository = $pagesRepository ?? GeneralUtility::makeInstance(PagesRepository::class); $this->documentBuilder = $documentBuilder ?? GeneralUtility::makeInstance(Builder::class); - $this->logger = $logger ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = $logger ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->connectionManager = $connectionManager ?? GeneralUtility::makeInstance(ConnectionManager::class); $this->frontendEnvironment = $frontendEnvironment ?? GeneralUtility::makeInstance(FrontendEnvironment::class); } @@ -146,9 +146,9 @@ class Indexer extends AbstractIndexer $this->type = $item->getType(); $this->setLogging($item); - $solrConnections = $this->getSolrConnectionsByItem($item); - foreach ($solrConnections as $systemLanguageUid => $solrConnection) { - $this->solr = $solrConnection; + $meilisearchConnections = $this->getMeilisearchConnectionsByItem($item); + foreach ($meilisearchConnections as $systemLanguageUid => $meilisearchConnection) { + $this->meilisearch = $meilisearchConnection; if (!$this->indexItem($item, $systemLanguageUid)) { /* @@ -167,7 +167,7 @@ class Indexer extends AbstractIndexer } /** - * Creates a single Solr Document for an item in a specific language. + * Creates a single Meilisearch Document for an item in a specific language. * * @param Item $item An index queue item to index. * @param int $language The language to use. @@ -195,7 +195,7 @@ class Indexer extends AbstractIndexer $documents = $this->preAddModifyDocuments($item, $language, $documents); try { - $response = $this->solr->getWriteService()->addDocuments($documents); + $response = $this->meilisearch->getWriteService()->addDocuments($documents); if ($response->getHttpStatus() == 200) { $itemIndexed = true; } @@ -224,7 +224,7 @@ class Indexer extends AbstractIndexer $itemRecord = $this->getItemRecordOverlayed($item, $language); if (!is_null($itemRecord)) { - $itemRecord['__solr_index_language'] = $language; + $itemRecord['__meilisearch_index_language'] = $language; } return $itemRecord; @@ -288,8 +288,8 @@ class Indexer extends AbstractIndexer { try { $pageId = $this->getPageIdOfItem($item); - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($pageId, $language); - return $solrConfiguration->getIndexQueueFieldsConfigurationByConfigurationName($indexConfigurationName, []); + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($pageId, $language); + return $meilisearchConfiguration->getIndexQueueFieldsConfigurationByConfigurationName($indexConfigurationName, []); } catch (Exception $e) { return []; } @@ -317,9 +317,9 @@ class Indexer extends AbstractIndexer */ protected function getFieldConfigurationFromItemRootPage(Item $item, $language, $indexConfigurationName) { - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($item->getRootPageUid(), $language); + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($item->getRootPageUid(), $language); - return $solrConfiguration->getIndexQueueFieldsConfigurationByConfigurationName($indexConfigurationName, []); + return $meilisearchConfiguration->getIndexQueueFieldsConfigurationByConfigurationName($indexConfigurationName, []); } /** @@ -343,12 +343,12 @@ class Indexer extends AbstractIndexer } /** - * Converts an item array (record) to a Solr document by mapping the - * record's fields onto Solr document fields as configured in TypoScript. + * Converts an item array (record) to a Meilisearch document by mapping the + * record's fields onto Meilisearch document fields as configured in TypoScript. * * @param Item $item An index queue item * @param int $language Language Id - * @return Document|null The Solr document converted from the record + * @return Document|null The Meilisearch document converted from the record * @throws SiteNotFoundException * @throws ServiceUnavailableException * @throws ImmediateResponseException @@ -373,11 +373,11 @@ class Indexer extends AbstractIndexer } /** - * Creates a Solr document with the basic / core fields set already. + * Creates a Meilisearch document with the basic / core fields set already. * * @param Item $item The item to index * @param array $itemRecord The record to use to build the base document - * @return Document A basic Solr document + * @return Document A basic Meilisearch document */ protected function getBaseDocument(Item $item, array $itemRecord) { @@ -417,14 +417,14 @@ class Indexer extends AbstractIndexer * manipulating fields as defined in the field's configuration. * * @param Item $item An index queue item - * @param array $documents An array of \WapplerSystems\Meilisearch\System\Solr\Document\Document objects to manipulate. + * @param array $documents An array of \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document objects to manipulate. * @return Document[] array Array of manipulated Document objects. */ protected function processDocuments(Item $item, array $documents) { // needs to respect the TS settings for the page the item is on, conditions may apply - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($item->getRootPageUid()); - $fieldProcessingInstructions = $solrConfiguration->getIndexFieldProcessingInstructionsConfiguration(); + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($item->getRootPageUid()); + $fieldProcessingInstructions = $meilisearchConfiguration->getIndexFieldProcessingInstructionsConfiguration(); // same as in the FE indexer if (is_array($fieldProcessingInstructions)) { @@ -448,8 +448,8 @@ class Indexer extends AbstractIndexer { $documents = []; - if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueueIndexer']['indexItemAddDocuments'])) { - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueueIndexer']['indexItemAddDocuments'] as $classReference) { + if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueueIndexer']['indexItemAddDocuments'])) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueueIndexer']['indexItemAddDocuments'] as $classReference) { if (!class_exists($classReference)) { throw new \InvalidArgumentException('Class does not exits' . $classReference, 1490363487); } @@ -474,7 +474,7 @@ class Indexer extends AbstractIndexer /** * Provides a hook to manipulate documents right before they get added to - * the Solr index. + * the Meilisearch index. * * @param Item $item The item currently being indexed. * @param int $language The language uid of the documents @@ -483,8 +483,8 @@ class Indexer extends AbstractIndexer */ protected function preAddModifyDocuments(Item $item, $language, array $documents) { - if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueueIndexer']['preAddModifyDocuments'])) { - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueueIndexer']['preAddModifyDocuments'] as $classReference) { + if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueueIndexer']['preAddModifyDocuments'])) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['IndexQueueIndexer']['preAddModifyDocuments'] as $classReference) { $documentsModifier = GeneralUtility::makeInstance($classReference); if ($documentsModifier instanceof PageIndexerDocumentsModifier) { @@ -507,17 +507,17 @@ class Indexer extends AbstractIndexer // Initialization /** - * Gets the Solr connections applicable for an item. + * Gets the Meilisearch connections applicable for an item. * * The connections include the default connection and connections to be used * for translations of an item. * * @param Item $item An index queue item - * @return array An array of WapplerSystems\Meilisearch\System\Solr\SolrConnection connections, the array's keys are the sys_language_uid of the language of the connection + * @return array An array of WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection connections, the array's keys are the sys_language_uid of the language of the connection */ - protected function getSolrConnectionsByItem(Item $item) + protected function getMeilisearchConnectionsByItem(Item $item) { - $solrConnections = []; + $meilisearchConnections = []; $rootPageId = $item->getRootPageUid(); if ($item->getType() === 'pages') { @@ -526,12 +526,12 @@ class Indexer extends AbstractIndexer $pageId = $item->getRecordPageId(); } - // Solr configurations possible for this item + // Meilisearch configurations possible for this item $site = $item->getSite(); - $solrConfigurationsBySite = $site->getAllSolrConnectionConfigurations(); + $meilisearchConfigurationsBySite = $site->getAllMeilisearchConnectionConfigurations(); $siteLanguages = []; - foreach ($solrConfigurationsBySite as $solrConfiguration) { - $siteLanguages[] = $solrConfiguration['language']; + foreach ($meilisearchConfigurationsBySite as $meilisearchConfiguration) { + $siteLanguages[] = $meilisearchConfiguration['language']; } $defaultLanguageUid = $this->getDefaultLanguageUid($item, $site->getRootPage(), $siteLanguages); @@ -541,13 +541,13 @@ class Indexer extends AbstractIndexer $translationConnections = $this->getConnectionsForIndexableLanguages($translationOverlays); if ($defaultLanguageUid == 0) { - $solrConnections[0] = $defaultConnection; + $meilisearchConnections[0] = $defaultConnection; } - foreach ($translationConnections as $systemLanguageUid => $solrConnection) { - $solrConnections[$systemLanguageUid] = $solrConnection; + foreach ($translationConnections as $systemLanguageUid => $meilisearchConnection) { + $meilisearchConnections[$systemLanguageUid] = $meilisearchConnection; } - return $solrConnections; + return $meilisearchConnections; } /** @@ -641,7 +641,7 @@ class Indexer extends AbstractIndexer * these connections. * * @param array $translationOverlays An array of translation overlays to check for configured connections. - * @return array An array of WapplerSystems\Meilisearch\System\Solr\SolrConnection connections. + * @return array An array of WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection connections. */ protected function getConnectionsForIndexableLanguages(array $translationOverlays) { @@ -654,7 +654,7 @@ class Indexer extends AbstractIndexer try { $connection = $this->connectionManager->getConnectionByPageId($pageId, $languageId); $connections[$languageId] = $connection; - } catch (NoSolrConnectionFoundException $e) { + } catch (NoMeilisearchConnectionFoundException $e) { // ignore the exception as we seek only those connections // actually available } @@ -666,7 +666,7 @@ class Indexer extends AbstractIndexer // Utility methods // FIXME extract log() and setLogging() to WapplerSystems\Meilisearch\IndexQueue\AbstractIndexer - // FIXME extract an interface Tx_Solr_IndexQueue_ItemInterface + // FIXME extract an interface Tx_Meilisearch_IndexQueue_ItemInterface /** * Enables logging dependent on the configuration of the item's site @@ -676,8 +676,8 @@ class Indexer extends AbstractIndexer */ protected function setLogging(Item $item) { - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($item->getRootPageUid()); - $this->loggingEnabled = $solrConfiguration->getLoggingIndexingQueueOperationsByConfigurationNameWithFallBack( + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($item->getRootPageUid()); + $this->loggingEnabled = $meilisearchConfiguration->getLoggingIndexingQueueOperationsByConfigurationNameWithFallBack( $item->getIndexingConfigurationName() ); } @@ -686,8 +686,8 @@ class Indexer extends AbstractIndexer * Logs the item and what document was created from it * * @param Item $item The item that is being indexed. - * @param array $itemDocuments An array of Solr documents created from the item's data - * @param ResponseAdapter $response The Solr response for the particular index document + * @param array $itemDocuments An array of Meilisearch documents created from the item's data + * @param ResponseAdapter $response The Meilisearch response for the particular index document */ protected function log(Item $item, array $itemDocuments, ResponseAdapter $response) { @@ -706,10 +706,10 @@ class Indexer extends AbstractIndexer $logData = ['item' => (array)$item, 'documents' => $documents, 'response' => (array)$response]; if ($response->getHttpStatus() == 200) { - $severity = SolrLogManager::NOTICE; + $severity = MeilisearchLogManager::NOTICE; $message .= 'Success'; } else { - $severity = SolrLogManager::ERROR; + $severity = MeilisearchLogManager::ERROR; $message .= 'Failure'; $logData['status'] = $response->getHttpStatus(); diff --git a/Classes/IndexQueue/Initializer/AbstractInitializer.php b/Classes/IndexQueue/Initializer/AbstractInitializer.php index 984e7e7..1b4c7ff 100644 --- a/Classes/IndexQueue/Initializer/AbstractInitializer.php +++ b/Classes/IndexQueue/Initializer/AbstractInitializer.php @@ -29,7 +29,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue\Initializer; use WapplerSystems\Meilisearch\Domain\Index\Queue\QueueItemRepository; use WapplerSystems\Meilisearch\Domain\Site\Site; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use Doctrine\DBAL\DBALException; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Database\ConnectionPool; @@ -81,7 +81,7 @@ abstract class AbstractInitializer implements IndexQueueInitializer protected $flashMessageQueue; /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -96,9 +96,9 @@ abstract class AbstractInitializer implements IndexQueueInitializer */ public function __construct(QueueItemRepository $queueItemRepository = null) { - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class); - $this->flashMessageQueue = $flashMessageService->getMessageQueueByIdentifier('solr.queue.initializer'); + $this->flashMessageQueue = $flashMessageService->getMessageQueueByIdentifier('meilisearch.queue.initializer'); $this->queueItemRepository = $queueItemRepository ?? GeneralUtility::makeInstance(QueueItemRepository::class); } @@ -388,11 +388,11 @@ abstract class AbstractInitializer implements IndexQueueInitializer */ protected function logInitialization(array $logData) { - if (!$this->site->getSolrConfiguration()->getLoggingIndexingIndexQueueInitialization()) { + if (!$this->site->getMeilisearchConfiguration()->getLoggingIndexingIndexQueueInitialization()) { return; } - $logSeverity = isset($logData['error']) ? SolrLogManager::ERROR : SolrLogManager::NOTICE; + $logSeverity = isset($logData['error']) ? MeilisearchLogManager::ERROR : MeilisearchLogManager::NOTICE; $logData = array_merge($logData, [ 'site' => $this->site->getLabel(), 'indexing configuration name' => $this->indexingConfigurationName, diff --git a/Classes/IndexQueue/Initializer/Page.php b/Classes/IndexQueue/Initializer/Page.php index b82eec1..f3a525e 100644 --- a/Classes/IndexQueue/Initializer/Page.php +++ b/Classes/IndexQueue/Initializer/Page.php @@ -31,7 +31,7 @@ use WapplerSystems\Meilisearch\Domain\Index\Queue\QueueItemRepository; use WapplerSystems\Meilisearch\Domain\Site\SiteRepository; use WapplerSystems\Meilisearch\IndexQueue\Item; use WapplerSystems\Meilisearch\IndexQueue\Queue; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository; use Doctrine\DBAL\DBALException; use TYPO3\CMS\Backend\Utility\BackendUtility; @@ -167,7 +167,7 @@ class Page extends AbstractInitializer $databaseConnection->rollBack(); $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Index Queue initialization failed for mount pages', [ $e->__toString() diff --git a/Classes/IndexQueue/InvalidFieldNameException.php b/Classes/IndexQueue/InvalidFieldNameException.php index cdb3618..c281a5c 100644 --- a/Classes/IndexQueue/InvalidFieldNameException.php +++ b/Classes/IndexQueue/InvalidFieldNameException.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue; ***************************************************************/ /** - * Exception that is thrown when trying to add a field to a Solr document using + * Exception that is thrown when trying to add a field to a Meilisearch document using * a reserved name. * * @author Ingo Renner diff --git a/Classes/IndexQueue/PageIndexer.php b/Classes/IndexQueue/PageIndexer.php index ca91875..5c65ec2 100644 --- a/Classes/IndexQueue/PageIndexer.php +++ b/Classes/IndexQueue/PageIndexer.php @@ -28,7 +28,7 @@ use WapplerSystems\Meilisearch\Access\Rootline; use WapplerSystems\Meilisearch\Access\RootlineElement; use WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriBuilder\AbstractUriStrategy; use WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriStrategyFactory; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -57,8 +57,8 @@ class PageIndexer extends Indexer return false; } - $solrConnections = $this->getSolrConnectionsByItem($item); - foreach ($solrConnections as $systemLanguageUid => $solrConnection) { + $meilisearchConnections = $this->getMeilisearchConnectionsByItem($item); + foreach ($meilisearchConnections as $systemLanguageUid => $meilisearchConnection) { $contentAccessGroups = $this->getAccessGroupsFromContent($item, $systemLanguageUid); if (empty($contentAccessGroups)) { @@ -100,44 +100,44 @@ class PageIndexer extends Indexer } /** - * Gets the Solr connections applicable for a page. + * Gets the Meilisearch connections applicable for a page. * * The connections include the default connection and connections to be used * for translations of a page. * * @param Item $item An index queue item - * @return array An array of WapplerSystems\Meilisearch\System\Solr\SolrConnection connections, the array's keys are the sys_language_uid of the language of the connection + * @return array An array of WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection connections, the array's keys are the sys_language_uid of the language of the connection */ - protected function getSolrConnectionsByItem(Item $item) + protected function getMeilisearchConnectionsByItem(Item $item) { - $solrConnections = parent::getSolrConnectionsByItem($item); + $meilisearchConnections = parent::getMeilisearchConnectionsByItem($item); $page = $item->getRecord(); // may use \TYPO3\CMS\Core\Utility\GeneralUtility::hideIfDefaultLanguage($page['l18n_cfg']) with TYPO3 4.6 if ($page['l18n_cfg'] & 1) { - // page is configured to hide the default translation -> remove Solr connection for default language - unset($solrConnections[0]); + // page is configured to hide the default translation -> remove Meilisearch connection for default language + unset($meilisearchConnections[0]); } if (GeneralUtility::hideIfNotTranslated($page['l18n_cfg'])) { - $accessibleSolrConnections = []; - if (isset($solrConnections[0])) { - $accessibleSolrConnections[0] = $solrConnections[0]; + $accessibleMeilisearchConnections = []; + if (isset($meilisearchConnections[0])) { + $accessibleMeilisearchConnections[0] = $meilisearchConnections[0]; } $translationOverlays = $this->pagesRepository->findTranslationOverlaysByPageId((int)$page['uid']); foreach ($translationOverlays as $overlay) { $languageId = $overlay['sys_language_uid']; - if (array_key_exists($languageId, $solrConnections)) { - $accessibleSolrConnections[$languageId] = $solrConnections[$languageId]; + if (array_key_exists($languageId, $meilisearchConnections)) { + $accessibleMeilisearchConnections[$languageId] = $meilisearchConnections[$languageId]; } } - $solrConnections = $accessibleSolrConnections; + $meilisearchConnections = $accessibleMeilisearchConnections; } - return $solrConnections; + return $meilisearchConnections; } /** @@ -169,7 +169,7 @@ class PageIndexer extends Indexer if ($this->loggingEnabled) { $this->logger->log( - SolrLogManager::INFO, + MeilisearchLogManager::INFO, 'Page Access Groups', [ 'item' => (array)$item, @@ -278,7 +278,7 @@ class PageIndexer extends Indexer # /** - * Creates a single Solr Document for a page in a specific language and for + * Creates a single Meilisearch Document for a page in a specific language and for * a specific frontend user group. * * @param Item $item The index queue item representing the page. @@ -300,10 +300,10 @@ class PageIndexer extends Indexer $indexActionResult = $response->getActionResult('indexPage'); if ($this->loggingEnabled) { - $logSeverity = SolrLogManager::INFO; + $logSeverity = MeilisearchLogManager::INFO; $logStatus = 'Info'; if ($indexActionResult['pageIndexed']) { - $logSeverity = SolrLogManager::NOTICE; + $logSeverity = MeilisearchLogManager::NOTICE; $logStatus = 'Success'; } diff --git a/Classes/IndexQueue/PageIndexerDocumentsModifier.php b/Classes/IndexQueue/PageIndexerDocumentsModifier.php index 55fdf02..0a7228a 100644 --- a/Classes/IndexQueue/PageIndexerDocumentsModifier.php +++ b/Classes/IndexQueue/PageIndexerDocumentsModifier.php @@ -29,7 +29,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue; /** * IndexQueuePageIndexerDocumentsModifier interface, allows to modify documents - * before adding them to the Solr index in the index queue page indexer. + * before adding them to the Meilisearch index in the index queue page indexer. * * @author Ingo Renner */ diff --git a/Classes/IndexQueue/PageIndexerRequest.php b/Classes/IndexQueue/PageIndexerRequest.php index 767a911..c4fcdb8 100644 --- a/Classes/IndexQueue/PageIndexerRequest.php +++ b/Classes/IndexQueue/PageIndexerRequest.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\IndexQueue; ***************************************************************/ use WapplerSystems\Meilisearch\System\Configuration\ExtensionConfiguration; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use Psr\Http\Message\ResponseInterface; use GuzzleHttp\Exception\ServerException; use GuzzleHttp\Exception\ClientException; @@ -40,7 +40,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; class PageIndexerRequest { - const SOLR_INDEX_HEADER = 'X-Tx-Solr-Iq'; + const SOLR_INDEX_HEADER = 'X-Tx-Meilisearch-Iq'; /** * List of actions to perform during page rendering. @@ -99,7 +99,7 @@ class PageIndexerRequest protected $timeout; /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -117,16 +117,16 @@ class PageIndexerRequest * PageIndexerRequest constructor. * * @param string $jsonEncodedParameters json encoded header - * @param SolrLogManager|null $solrLogManager + * @param MeilisearchLogManager|null $meilisearchLogManager * @param ExtensionConfiguration|null $extensionConfiguration * @param RequestFactory|null $requestFactory */ - public function __construct($jsonEncodedParameters = null, SolrLogManager $solrLogManager = null, ExtensionConfiguration $extensionConfiguration = null, RequestFactory $requestFactory = null) + public function __construct($jsonEncodedParameters = null, MeilisearchLogManager $meilisearchLogManager = null, ExtensionConfiguration $extensionConfiguration = null, RequestFactory $requestFactory = null) { $this->requestId = uniqid(); $this->timeout = (float)ini_get('default_socket_timeout'); - $this->logger = $solrLogManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = $meilisearchLogManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->extensionConfiguration = $extensionConfiguration ?? GeneralUtility::makeInstance(ExtensionConfiguration::class); $this->requestFactory = $requestFactory ?? GeneralUtility::makeInstance(RequestFactory::class); @@ -207,7 +207,7 @@ class PageIndexerRequest if ($rawResponse === false || $decodedResponse === false) { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Failed to execute Page Indexer Request. Request ID: ' . $this->requestId, [ 'request ID' => $this->requestId, diff --git a/Classes/IndexQueue/Queue.php b/Classes/IndexQueue/Queue.php index 531b9b8..4bcd655 100644 --- a/Classes/IndexQueue/Queue.php +++ b/Classes/IndexQueue/Queue.php @@ -33,7 +33,7 @@ use WapplerSystems\Meilisearch\Domain\Index\Queue\Statistic\QueueStatisticsRepos use WapplerSystems\Meilisearch\Domain\Site\Site; use WapplerSystems\Meilisearch\FrontendEnvironment; use WapplerSystems\Meilisearch\System\Cache\TwoLevelCache; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -56,7 +56,7 @@ class Queue protected $recordService; /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -97,7 +97,7 @@ class Queue FrontendEnvironment $frontendEnvironment = null ) { - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->rootPageResolver = $rootPageResolver ?? GeneralUtility::makeInstance(RootPageResolver::class); $this->recordService = $recordService ?? GeneralUtility::makeInstance(ConfigurationAwareRecordService::class); $this->queueItemRepository = $queueItemRepository ?? GeneralUtility::makeInstance(QueueItemRepository::class); @@ -159,7 +159,7 @@ class Queue /** * Marks an item as needing (re)indexing. * - * Like with Solr itself, there's no add method, just a simple update method + * Like with Meilisearch itself, there's no add method, just a simple update method * that handles the adds, too. * * The method creates or updates the index queue items for all related rootPageIds. @@ -195,8 +195,8 @@ class Queue continue; } - $solrConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($rootPageId); - $indexingConfiguration = $this->recordService->getIndexingConfigurationName($itemType, $itemUid, $solrConfiguration); + $meilisearchConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($rootPageId); + $indexingConfiguration = $this->recordService->getIndexingConfigurationName($itemType, $itemUid, $meilisearchConfiguration); if ($indexingConfiguration === null) { continue; } @@ -227,11 +227,11 @@ class Queue */ protected function postProcessIndexQueueUpdateItem($itemType, $itemUid, $updateCount, $forcedChangeTime = 0) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessIndexQueueUpdateItem'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessIndexQueueUpdateItem'])) { return $updateCount; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessIndexQueueUpdateItem'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['postProcessIndexQueueUpdateItem'] as $classReference) { $updateHandler = $this->getHookImplementation($classReference); $updateCount = $updateHandler->postProcessIndexQueueUpdateItem($itemType, $itemUid, $updateCount, $forcedChangeTime); } @@ -568,7 +568,7 @@ class Queue * * @param Site $site TYPO3 site * @param int $limit Number of items to get from the queue - * @return Item[] Items to index to the given solr server + * @return Item[] Items to index to the given meilisearch server */ public function getItemsToIndex(Site $site, $limit = 50) { diff --git a/Classes/IndexQueue/RecordMonitor.php b/Classes/IndexQueue/RecordMonitor.php index c6745fc..b02f9ff 100644 --- a/Classes/IndexQueue/RecordMonitor.php +++ b/Classes/IndexQueue/RecordMonitor.php @@ -32,7 +32,7 @@ use WapplerSystems\Meilisearch\FrontendEnvironment; use WapplerSystems\Meilisearch\GarbageCollector; use WapplerSystems\Meilisearch\System\Configuration\ExtensionConfiguration; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\System\Records\Pages\PagesRepository; use WapplerSystems\Meilisearch\System\TCA\TCAService; use WapplerSystems\Meilisearch\Util; @@ -83,7 +83,7 @@ class RecordMonitor extends AbstractDataHandlerListener protected $pagesRepository; /** - * @var SolrLogManager + * @var MeilisearchLogManager */ protected $logger = null; @@ -100,7 +100,7 @@ class RecordMonitor extends AbstractDataHandlerListener * @param TCAService|null $TCAService * @param RootPageResolver $rootPageResolver * @param PagesRepository|null $pagesRepository - * @param SolrLogManager|null $solrLogManager + * @param MeilisearchLogManager|null $meilisearchLogManager * @param ConfigurationAwareRecordService|null $recordService */ public function __construct( @@ -109,7 +109,7 @@ class RecordMonitor extends AbstractDataHandlerListener TCAService $TCAService = null, RootPageResolver $rootPageResolver = null, PagesRepository $pagesRepository = null, - SolrLogManager $solrLogManager = null, + MeilisearchLogManager $meilisearchLogManager = null, ConfigurationAwareRecordService $recordService = null, FrontendEnvironment $frontendEnvironment = null ) @@ -120,14 +120,14 @@ class RecordMonitor extends AbstractDataHandlerListener $this->tcaService = $TCAService ?? GeneralUtility::makeInstance(TCAService::class); $this->rootPageResolver = $rootPageResolver ?? GeneralUtility::makeInstance(RootPageResolver::class); $this->pagesRepository = $pagesRepository ?? GeneralUtility::makeInstance(PagesRepository::class); - $this->logger = $solrLogManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = $meilisearchLogManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->frontendEnvironment = $frontendEnvironment ?? GeneralUtility::makeInstance(FrontendEnvironment::class); } /** - * @param SolrLogManager $logger + * @param MeilisearchLogManager $logger */ - public function setLogger(SolrLogManager $logger) + public function setLogger(MeilisearchLogManager $logger) { $this->logger = $logger; } @@ -248,8 +248,8 @@ class RecordMonitor extends AbstractDataHandlerListener */ protected function applyPageChangesToQueue($uid) { - $solrConfiguration = $this->getSolrConfigurationFromPageId($uid); - $record = $this->configurationAwareRecordService->getRecord('pages', $uid, $solrConfiguration); + $meilisearchConfiguration = $this->getMeilisearchConfigurationFromPageId($uid); + $record = $this->configurationAwareRecordService->getRecord('pages', $uid, $meilisearchConfiguration); if (!empty($record) && $this->tcaService->isEnabledRecord('pages', $record)) { $this->mountPageUpdater->update($uid); $this->indexQueue->updateItem('pages', $uid); @@ -268,11 +268,11 @@ class RecordMonitor extends AbstractDataHandlerListener */ protected function applyRecordChangesToQueue($table, $uid, $pid) { - $solrConfiguration = $this->getSolrConfigurationFromPageId($pid); - $isMonitoredTable = $solrConfiguration->getIndexQueueIsMonitoredTable($table); + $meilisearchConfiguration = $this->getMeilisearchConfigurationFromPageId($pid); + $isMonitoredTable = $meilisearchConfiguration->getIndexQueueIsMonitoredTable($table); if ($isMonitoredTable) { - $record = $this->configurationAwareRecordService->getRecord($table, $uid, $solrConfiguration); + $record = $this->configurationAwareRecordService->getRecord($table, $uid, $meilisearchConfiguration); if (!empty($record) && $this->tcaService->isEnabledRecord($table, $record)) { $uid = $this->tcaService->getTranslationOriginalUidIfTranslated($table, $record, $uid); @@ -287,7 +287,7 @@ class RecordMonitor extends AbstractDataHandlerListener /** * Hooks into TCE Main and watches all record creations and updates. If it * detects that the new/updated record belongs to a table configured for - * indexing through Solr, we add the record to the index queue. + * indexing through Meilisearch, we add the record to the index queue. * * @param string $status Status of the current operation, 'new' or 'update' * @param string $table The table the record belongs to @@ -324,7 +324,7 @@ class RecordMonitor extends AbstractDataHandlerListener $this->processRecord($recordTable, $recordPageId, $recordUid, $fields); } catch (NoPidException $e) { $message = 'Record without valid pid was processed ' . $table . ':' . $uid; - $this->logger->log(SolrLogManager::WARNING, $message); + $this->logger->log(MeilisearchLogManager::WARNING, $message); } } @@ -380,14 +380,14 @@ class RecordMonitor extends AbstractDataHandlerListener } } foreach ($rootPageIds as $configurationPageId) { - $solrConfiguration = $this->getSolrConfigurationFromPageId($configurationPageId); - $isMonitoredRecord = $solrConfiguration->getIndexQueueIsMonitoredTable($recordTable); + $meilisearchConfiguration = $this->getMeilisearchConfigurationFromPageId($configurationPageId); + $isMonitoredRecord = $meilisearchConfiguration->getIndexQueueIsMonitoredTable($recordTable); if (!$isMonitoredRecord) { // when it is a non monitored record, we can skip it. continue; } - $record = $this->configurationAwareRecordService->getRecord($recordTable, $recordUid, $solrConfiguration); + $record = $this->configurationAwareRecordService->getRecord($recordTable, $recordUid, $meilisearchConfiguration); if (empty($record)) { // TODO move this part to the garbage collector // check if the item should be removed from the index because it no longer matches the conditions @@ -514,7 +514,7 @@ class RecordMonitor extends AbstractDataHandlerListener } /** - * Removes record from the index queue and from the solr index + * Removes record from the index queue and from the meilisearch index * * @param string $recordTable Name of table where the record lives * @param int $recordUid Id of record @@ -526,7 +526,7 @@ class RecordMonitor extends AbstractDataHandlerListener } /** - * Removes record from the index queue and from the solr index when the item is in the queue. + * Removes record from the index queue and from the meilisearch index when the item is in the queue. * * @param string $recordTable Name of table where the record lives * @param int $recordUid Id of record @@ -594,8 +594,8 @@ class RecordMonitor extends AbstractDataHandlerListener * @param int $language * @return TypoScriptConfiguration */ - protected function getSolrConfigurationFromPageId($pageId) + protected function getMeilisearchConfigurationFromPageId($pageId) { - return $this->frontendEnvironment->getSolrConfigurationFromPageId($pageId); + return $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($pageId); } } diff --git a/Classes/IndexQueue/SerializedValueDetector.php b/Classes/IndexQueue/SerializedValueDetector.php index 07bd184..6813124 100644 --- a/Classes/IndexQueue/SerializedValueDetector.php +++ b/Classes/IndexQueue/SerializedValueDetector.php @@ -41,11 +41,11 @@ interface SerializedValueDetector * unserialized. * * @param array $indexingConfiguration Current item's indexing configuration - * @param string $solrFieldName Current field being indexed + * @param string $meilisearchFieldName Current field being indexed * @return bool TRUE if the value is expected to be serialized, FALSE otherwise */ public function isSerializedValue( array $indexingConfiguration, - $solrFieldName + $meilisearchFieldName ); } diff --git a/Classes/Middleware/FrontendUserAuthenticator.php b/Classes/Middleware/FrontendUserAuthenticator.php index 21f0071..98850b6 100644 --- a/Classes/Middleware/FrontendUserAuthenticator.php +++ b/Classes/Middleware/FrontendUserAuthenticator.php @@ -6,7 +6,7 @@ namespace WapplerSystems\Meilisearch\Middleware; /*************************************************************** * Copyright notice * - * (c) 2020 dkd Internet Services GmbH + * (c) 2020 dkd Internet Services GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -33,7 +33,7 @@ use WapplerSystems\Meilisearch\Access\Rootline; use WapplerSystems\Meilisearch\IndexQueue\FrontendHelper\AuthorizationService; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerRequest; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerRequestHandler; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use WapplerSystems\Meilisearch\Util; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -87,10 +87,10 @@ class FrontendUserAuthenticator implements MiddlewareInterface /* @var PageIndexerRequestHandler $pageIndexerRequestHandler */ $pageIndexerRequestHandler = GeneralUtility::makeInstance(PageIndexerRequestHandler::class, $jsonEncodedParameters); if (!$pageIndexerRequestHandler->getRequest()->isAuthenticated()) { - /* @var SolrLogManager $logger */ - $logger = GeneralUtility::makeInstance(SolrLogManager::class, self::class); + /* @var MeilisearchLogManager $logger */ + $logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, self::class); $logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Invalid Index Queue Frontend Request detected!', [ 'page indexer request' => (array)$pageIndexerRequestHandler->getRequest(), diff --git a/Classes/Middleware/PageIndexerInitialization.php b/Classes/Middleware/PageIndexerInitialization.php index 27e6011..f05db37 100644 --- a/Classes/Middleware/PageIndexerInitialization.php +++ b/Classes/Middleware/PageIndexerInitialization.php @@ -29,7 +29,7 @@ namespace WapplerSystems\Meilisearch\Middleware; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerRequest; use WapplerSystems\Meilisearch\IndexQueue\PageIndexerRequestHandler; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\MiddlewareInterface; @@ -60,10 +60,10 @@ class PageIndexerInitialization implements MiddlewareInterface $pageIndexerRequest = $pageIndexerRequestHandler->getRequest(); if (!$pageIndexerRequest->isAuthenticated()) { - /* @var SolrLogManager $logger */ - $logger = GeneralUtility::makeInstance(SolrLogManager::class, self::class); + /* @var MeilisearchLogManager $logger */ + $logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, self::class); $logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Invalid Index Queue Frontend Request detected!', [ 'page indexer request' => (array)$pageIndexerRequest, diff --git a/Classes/Migrations/RemoveSiteFromScheduler.php b/Classes/Migrations/RemoveSiteFromScheduler.php index 26ec214..306a236 100644 --- a/Classes/Migrations/RemoveSiteFromScheduler.php +++ b/Classes/Migrations/RemoveSiteFromScheduler.php @@ -96,7 +96,7 @@ class RemoveSiteFromScheduler implements Migration { ->from("tx_scheduler_task") ->where( $queryBuilder->expr()->andX( - $queryBuilder->expr()->like('serialized_task_object', "'%ApacheSolrForTypo3%'"), + $queryBuilder->expr()->like('serialized_task_object', "'%WapplerSystems%'"), $queryBuilder->expr()->like('serialized_task_object', "'%site\";O:28:\"%'") ) )->execute(); diff --git a/Classes/Mvc/Controller/SolrControllerContext.php b/Classes/Mvc/Controller/MeilisearchControllerContext.php similarity index 94% rename from Classes/Mvc/Controller/SolrControllerContext.php rename to Classes/Mvc/Controller/MeilisearchControllerContext.php index 16a77ba..0b67584 100644 --- a/Classes/Mvc/Controller/SolrControllerContext.php +++ b/Classes/Mvc/Controller/MeilisearchControllerContext.php @@ -19,12 +19,12 @@ use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext; /** - * Class SolrControllerContext + * Class MeilisearchControllerContext * * @author Frans Saris * @author Timo Hund */ -class SolrControllerContext extends ControllerContext +class MeilisearchControllerContext extends ControllerContext { /** diff --git a/Classes/NoSolrConnectionFoundException.php b/Classes/NoMeilisearchConnectionFoundException.php similarity index 92% rename from Classes/NoSolrConnectionFoundException.php rename to Classes/NoMeilisearchConnectionFoundException.php index 390d8f5..35e37c2 100644 --- a/Classes/NoSolrConnectionFoundException.php +++ b/Classes/NoMeilisearchConnectionFoundException.php @@ -25,11 +25,11 @@ namespace WapplerSystems\Meilisearch; ***************************************************************/ /** - * Exception that is thrown when no Solr connection could be found. + * Exception that is thrown when no Meilisearch connection could be found. * * @author Ingo Renner */ -class NoSolrConnectionFoundException extends \Exception +class NoMeilisearchConnectionFoundException extends \Exception { protected $pageId; diff --git a/Classes/PageDocumentPostProcessor.php b/Classes/PageDocumentPostProcessor.php index 54d29b3..f216a71 100644 --- a/Classes/PageDocumentPostProcessor.php +++ b/Classes/PageDocumentPostProcessor.php @@ -27,12 +27,12 @@ namespace WapplerSystems\Meilisearch; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; /** * Page document post processor interface to handle page documents after they - * have been put together, but not yet submitted to Solr. + * have been put together, but not yet submitted to Meilisearch. * * @author Steffen Ritter */ diff --git a/Classes/Query/Modifier/Faceting.php b/Classes/Query/Modifier/Faceting.php index 8feee15..23c38f5 100644 --- a/Classes/Query/Modifier/Faceting.php +++ b/Classes/Query/Modifier/Faceting.php @@ -131,7 +131,7 @@ class Faceting implements Modifier, SearchRequestAware /** * Adds filters specified through HTTP GET as filter query parameters to - * the Solr query. + * the Meilisearch query. * * @param array $resultParameters * @param array $allFacets diff --git a/Classes/Report/AbstractSolrStatus.php b/Classes/Report/AbstractMeilisearchStatus.php similarity index 94% rename from Classes/Report/AbstractSolrStatus.php rename to Classes/Report/AbstractMeilisearchStatus.php index 8f4db0f..de38c26 100644 --- a/Classes/Report/AbstractSolrStatus.php +++ b/Classes/Report/AbstractMeilisearchStatus.php @@ -29,11 +29,11 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Reports\StatusProviderInterface; /** - * Provides shared functionality for all Solr reports. + * Provides shared functionality for all Meilisearch reports. * * @author Timo Hund */ -abstract class AbstractSolrStatus implements StatusProviderInterface +abstract class AbstractMeilisearchStatus implements StatusProviderInterface { /** * Assigns variables to the fluid StandaloneView and renders the view. diff --git a/Classes/Report/AccessFilterPluginInstalledStatus.php b/Classes/Report/AccessFilterPluginInstalledStatus.php index fb8804d..c1857bd 100644 --- a/Classes/Report/AccessFilterPluginInstalledStatus.php +++ b/Classes/Report/AccessFilterPluginInstalledStatus.php @@ -25,21 +25,21 @@ namespace WapplerSystems\Meilisearch\Report; ***************************************************************/ use WapplerSystems\Meilisearch\ConnectionManager; -use WapplerSystems\Meilisearch\System\Solr\Service\SolrAdminService; +use WapplerSystems\Meilisearch\System\Meilisearch\Service\MeilisearchAdminService; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Reports\Status; /** * Provides a status report about whether the Access Filter Query Parser Plugin - * is installed on the Solr server. + * is installed on the Meilisearch server. * * @author Ingo Renner */ -class AccessFilterPluginInstalledStatus extends AbstractSolrStatus +class AccessFilterPluginInstalledStatus extends AbstractMeilisearchStatus { /** - * Solr Access Filter plugin version. + * Meilisearch Access Filter plugin version. * * Must be updated when changing the plugin. * @@ -52,21 +52,21 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus * * @var string */ - const PLUGIN_CLASS_NAME = 'org.typo3.solr.search.AccessFilterQParserPlugin'; + const PLUGIN_CLASS_NAME = 'org.typo3.meilisearch.search.AccessFilterQParserPlugin'; /** - * Compiles a collection of solrconfig.xml checks against each configured - * Solr server. Only adds an entry if the Access Filter Query Parser Plugin + * Compiles a collection of meilisearchconfig.xml checks against each configured + * Meilisearch server. Only adds an entry if the Access Filter Query Parser Plugin * is not configured. * */ public function getStatus() { $reports = []; - $solrConnections = GeneralUtility::makeInstance(ConnectionManager::class)->getAllConnections(); + $meilisearchConnections = GeneralUtility::makeInstance(ConnectionManager::class)->getAllConnections(); - foreach ($solrConnections as $solrConnection) { - $adminService = $solrConnection->getAdminService(); + foreach ($meilisearchConnections as $meilisearchConnection) { + $adminService = $meilisearchConnection->getAdminService(); if ($adminService->ping()) { $installationStatus = $this->checkPluginInstallationStatus($adminService); $versionStatus = $this->checkPluginVersion($adminService); @@ -85,18 +85,18 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus } /** - * Checks whether the Solr plugin is installed. + * Checks whether the Meilisearch plugin is installed. * - * @param SolrAdminService $adminService + * @param MeilisearchAdminService $adminService * @return null|\TYPO3\CMS\Reports\Status */ - protected function checkPluginInstallationStatus(SolrAdminService $adminService) + protected function checkPluginInstallationStatus(MeilisearchAdminService $adminService) { if ($this->isPluginInstalled($adminService)) { return null; } - $variables = ['solr' => $adminService, 'recommendedVersion' => self::RECOMMENDED_PLUGIN_VERSION]; + $variables = ['meilisearch' => $adminService, 'recommendedVersion' => self::RECOMMENDED_PLUGIN_VERSION]; $report = $this->getRenderedReport('AccessFilterPluginInstalledStatusNotInstalled.html', $variables); return GeneralUtility::makeInstance( @@ -109,19 +109,19 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus } /** - * Checks whether the Solr plugin version is up to date. + * Checks whether the Meilisearch plugin version is up to date. * - * @param SolrAdminService $adminService + * @param MeilisearchAdminService $adminService * @return null|\TYPO3\CMS\Reports\Status */ - protected function checkPluginVersion(SolrAdminService $adminService) + protected function checkPluginVersion(MeilisearchAdminService $adminService) { if (!($this->isPluginInstalled($adminService) && $this->isPluginOutdated($adminService))) { return null; } $version = $this->getInstalledPluginVersion($adminService); - $variables = ['solr' => $adminService, 'installedVersion' => $version, 'recommendedVersion' => self::RECOMMENDED_PLUGIN_VERSION]; + $variables = ['meilisearch' => $adminService, 'installedVersion' => $version, 'recommendedVersion' => self::RECOMMENDED_PLUGIN_VERSION]; $report = $this->getRenderedReport('AccessFilterPluginInstalledStatusIsOutDated.html', $variables); return GeneralUtility::makeInstance( @@ -135,12 +135,12 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus /** * Checks whether the Access Filter Query Parser Plugin is installed for - * the given Solr server instance. + * the given Meilisearch server instance. * - * @param SolrAdminService $adminService + * @param MeilisearchAdminService $adminService * @return bool True if the plugin is installed, FALSE otherwise. */ - protected function isPluginInstalled(SolrAdminService $adminService) + protected function isPluginInstalled(MeilisearchAdminService $adminService) { $accessFilterQueryParserPluginInstalled = false; @@ -155,10 +155,10 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus /** * Checks whether the installed plugin is current. * - * @param SolrAdminService $adminService + * @param MeilisearchAdminService $adminService * @return bool True if the plugin is outdated, FALSE if it meets the current version recommendation. */ - protected function isPluginOutdated(SolrAdminService $adminService) + protected function isPluginOutdated(MeilisearchAdminService $adminService) { $pluginVersion = $this->getInstalledPluginVersion($adminService); $pluginVersionOutdated = version_compare($pluginVersion, self::RECOMMENDED_PLUGIN_VERSION, '<'); @@ -169,10 +169,10 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus /** * Gets the version of the installed plugin. * - * @param SolrAdminService $adminService + * @param MeilisearchAdminService $adminService * @return string The installed plugin's version number. */ - public function getInstalledPluginVersion(SolrAdminService $adminService) + public function getInstalledPluginVersion(MeilisearchAdminService $adminService) { $pluginsInformation = $adminService->getPluginsInformation(); diff --git a/Classes/Report/AllowUrlFOpenStatus.php b/Classes/Report/AllowUrlFOpenStatus.php index 913902a..516ed3b 100644 --- a/Classes/Report/AllowUrlFOpenStatus.php +++ b/Classes/Report/AllowUrlFOpenStatus.php @@ -33,7 +33,7 @@ use TYPO3\CMS\Reports\Status; * * @author Ingo Renner */ -class AllowUrlFOpenStatus extends AbstractSolrStatus +class AllowUrlFOpenStatus extends AbstractMeilisearchStatus { /** @@ -51,7 +51,7 @@ class AllowUrlFOpenStatus extends AbstractSolrStatus $severity = Status::ERROR; $value = 'Off'; $message = 'allow_url_fopen must be enabled in php.ini to allow - communication between TYPO3 and the Apache Solr server. + communication between TYPO3 and the Meilisearch server. Indexing pages using the Index Queue will also not work with this setting disabled.'; } diff --git a/Classes/Report/FilterVarStatus.php b/Classes/Report/FilterVarStatus.php index 9797bdc..935f1f6 100644 --- a/Classes/Report/FilterVarStatus.php +++ b/Classes/Report/FilterVarStatus.php @@ -33,7 +33,7 @@ use TYPO3\CMS\Reports\Status; * * @author Ingo Renner */ -class FilterVarStatus extends AbstractSolrStatus +class FilterVarStatus extends AbstractMeilisearchStatus { /** @@ -44,7 +44,7 @@ class FilterVarStatus extends AbstractSolrStatus { $reports = []; - $validUrl = 'http://www.typo3-solr.com'; + $validUrl = 'http://www.typo3-meilisearch.com'; if (!filter_var($validUrl, FILTER_VALIDATE_URL)) { $message = 'You are using a PHP version that is affected by a bug in function filter_var(). This bug causes said function to diff --git a/Classes/Report/SolrConfigStatus.php b/Classes/Report/MeilisearchConfigStatus.php similarity index 66% rename from Classes/Report/SolrConfigStatus.php rename to Classes/Report/MeilisearchConfigStatus.php index 26e4e0d..d78c8a9 100644 --- a/Classes/Report/SolrConfigStatus.php +++ b/Classes/Report/MeilisearchConfigStatus.php @@ -29,12 +29,12 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Reports\Status; /** - * Provides a status report about which solrconfig version is used and checks + * Provides a status report about which meilisearchconfig version is used and checks * whether it fits the recommended version shipping with the extension. * * @author Ingo Renner */ -class SolrConfigStatus extends AbstractSolrStatus +class MeilisearchConfigStatus extends AbstractMeilisearchStatus { /** @@ -44,33 +44,33 @@ class SolrConfigStatus extends AbstractSolrStatus * x-y-z - The extension version this config is meant to work with * YYYYMMDD - The date the config file was changed the last time * - * Must be updated when changing the solrconfig. + * Must be updated when changing the meilisearchconfig. * * @var string */ const RECOMMENDED_SOLRCONFIG_VERSION = 'tx_meilisearch-11-0-0--20200415'; /** - * Compiles a collection of solrconfig version checks against each configured - * Solr server. Only adds an entry if a solrconfig other than the + * Compiles a collection of meilisearchconfig version checks against each configured + * Meilisearch server. Only adds an entry if a meilisearchconfig other than the * recommended one was found. * */ public function getStatus() { $reports = []; - $solrConnections = GeneralUtility::makeInstance(ConnectionManager::class)->getAllConnections(); + $meilisearchConnections = GeneralUtility::makeInstance(ConnectionManager::class)->getAllConnections(); - foreach ($solrConnections as $solrConnection) { - $adminService = $solrConnection->getAdminService(); + foreach ($meilisearchConnections as $meilisearchConnection) { + $adminService = $meilisearchConnection->getAdminService(); - if ($adminService->ping() && $adminService->getSolrconfigName() != self::RECOMMENDED_SOLRCONFIG_VERSION) { - $variables = ['solr' => $adminService, 'recommendedVersion' => self::RECOMMENDED_SOLRCONFIG_VERSION]; - $report = $this->getRenderedReport('SolrConfigStatus.html', $variables); + if ($adminService->ping() && $adminService->getMeilisearchconfigName() != self::RECOMMENDED_SOLRCONFIG_VERSION) { + $variables = ['meilisearch' => $adminService, 'recommendedVersion' => self::RECOMMENDED_SOLRCONFIG_VERSION]; + $report = $this->getRenderedReport('MeilisearchConfigStatus.html', $variables); $status = GeneralUtility::makeInstance( Status::class, - /** @scrutinizer ignore-type */ 'Solrconfig Version', - /** @scrutinizer ignore-type */ 'Unsupported solrconfig.xml', + /** @scrutinizer ignore-type */ 'Meilisearchconfig Version', + /** @scrutinizer ignore-type */ 'Unsupported meilisearchconfig.xml', /** @scrutinizer ignore-type */ $report, /** @scrutinizer ignore-type */ Status::WARNING ); diff --git a/Classes/Report/SolrConfigurationStatus.php b/Classes/Report/MeilisearchConfigurationStatus.php similarity index 92% rename from Classes/Report/SolrConfigurationStatus.php rename to Classes/Report/MeilisearchConfigurationStatus.php index ca62145..5b89192 100644 --- a/Classes/Report/SolrConfigurationStatus.php +++ b/Classes/Report/MeilisearchConfigurationStatus.php @@ -40,7 +40,7 @@ use TYPO3\CMS\Reports\Status; * * @author Ingo Renner */ -class SolrConfigurationStatus extends AbstractSolrStatus +class MeilisearchConfigurationStatus extends AbstractMeilisearchStatus { /** * @var ExtensionConfiguration @@ -53,7 +53,7 @@ class SolrConfigurationStatus extends AbstractSolrStatus protected $frontendEnvironment = null; /** - * SolrConfigurationStatus constructor. + * MeilisearchConfigurationStatus constructor. * @param ExtensionConfiguration|null $extensionConfiguration * @param FrontendEnvironment|null $frontendEnvironment @@ -130,7 +130,7 @@ class SolrConfigurationStatus extends AbstractSolrStatus return null; } - $report = $this->getRenderedReport('SolrConfigurationStatusIndexing.html', ['pages' => $rootPagesWithIndexingOff]); + $report = $this->getRenderedReport('MeilisearchConfigurationStatusIndexing.html', ['pages' => $rootPagesWithIndexingOff]); return GeneralUtility::makeInstance( Status::class, /** @scrutinizer ignore-type */ 'Page Indexing', @@ -154,8 +154,8 @@ class SolrConfigurationStatus extends AbstractSolrStatus foreach ($rootPages as $rootPage) { try { $this->initializeTSFE($rootPage); - $solrIsEnabledAndIndexingDisabled = $this->getIsSolrEnabled() && !$this->getIsIndexingEnabled(); - if ($solrIsEnabledAndIndexingDisabled) { + $meilisearchIsEnabledAndIndexingDisabled = $this->getIsMeilisearchEnabled() && !$this->getIsIndexingEnabled(); + if ($meilisearchIsEnabledAndIndexingDisabled) { $rootPagesWithIndexingOff[] = $rootPage; } } catch (RuntimeException $rte) { @@ -192,11 +192,11 @@ class SolrConfigurationStatus extends AbstractSolrStatus } /** - * Checks if the solr plugin is enabled with plugin.tx_meilisearch.enabled. + * Checks if the meilisearch plugin is enabled with plugin.tx_meilisearch.enabled. * * @return bool */ - protected function getIsSolrEnabled(): bool + protected function getIsMeilisearchEnabled(): bool { if (empty($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_meilisearch.']['enabled'])) { return false; diff --git a/Classes/Report/SolrStatus.php b/Classes/Report/MeilisearchStatus.php similarity index 54% rename from Classes/Report/SolrStatus.php rename to Classes/Report/MeilisearchStatus.php index 97c2088..02fceaa 100644 --- a/Classes/Report/SolrStatus.php +++ b/Classes/Report/MeilisearchStatus.php @@ -27,19 +27,19 @@ namespace WapplerSystems\Meilisearch\Report; use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\Domain\Site\SiteRepository; use WapplerSystems\Meilisearch\PingFailedException; -use WapplerSystems\Meilisearch\System\Solr\Service\SolrAdminService; +use WapplerSystems\Meilisearch\System\Meilisearch\Service\MeilisearchAdminService; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Fluid\View\StandaloneView; use TYPO3\CMS\Reports\Status; use TYPO3\CMS\Reports\StatusProviderInterface; /** - * Provides an status report about whether a connection to the Solr server can + * Provides an status report about whether a connection to the Meilisearch server can * be established. * * @author Ingo Renner */ -class SolrStatus extends AbstractSolrStatus +class MeilisearchStatus extends AbstractMeilisearchStatus { /** @@ -72,7 +72,7 @@ class SolrStatus extends AbstractSolrStatus /** - * SolrStatus constructor. + * MeilisearchStatus constructor. * @param SiteRepository|null $siteRepository * @param ConnectionManager|null $connectionManager */ @@ -83,15 +83,15 @@ class SolrStatus extends AbstractSolrStatus } /** - * Compiles a collection of status checks against each configured Solr server. + * Compiles a collection of status checks against each configured Meilisearch server. * */ public function getStatus() { $reports = []; foreach ($this->siteRepository->getAvailableSites() as $site) { - foreach ($site->getAllSolrConnectionConfigurations() as $solrConfiguration) { - $reports[] = $this->getConnectionStatus($solrConfiguration); + foreach ($site->getAllMeilisearchConnectionConfigurations() as $meilisearchConfiguration) { + $reports[] = $this->getConnectionStatus($meilisearchConfiguration); } } @@ -99,45 +99,45 @@ class SolrStatus extends AbstractSolrStatus } /** - * Checks whether a Solr server is available and provides some information. + * Checks whether a Meilisearch server is available and provides some information. * - * @param array $solrConnection Solr connection parameters - * @return Status Status of the Solr connection + * @param array $meilisearchConnection Meilisearch connection parameters + * @return Status Status of the Meilisearch connection */ - protected function getConnectionStatus(array $solrConnection) + protected function getConnectionStatus(array $meilisearchConnection) { - $header = 'Your site has contacted the Apache Solr server.'; + $header = 'Your site has contacted the Meilisearch server.'; $this->responseStatus = Status::OK; - $solrAdmin = $this->connectionManager - ->getSolrConnectionForNodes($solrConnection['read'], $solrConnection['write']) + $meilisearchAdmin = $this->connectionManager + ->getMeilisearchConnectionForNodes($meilisearchConnection['read'], $meilisearchConnection['write']) ->getAdminService(); - $solrVersion = $this->checkSolrVersion($solrAdmin); - $accessFilter = $this->checkAccessFilter($solrAdmin); - $pingTime = $this->checkPingTime($solrAdmin); - $configName = $this->checkSolrConfigName($solrAdmin); - $schemaName = $this->checkSolrSchemaName($solrAdmin); + $meilisearchVersion = $this->checkMeilisearchVersion($meilisearchAdmin); + $accessFilter = $this->checkAccessFilter($meilisearchAdmin); + $pingTime = $this->checkPingTime($meilisearchAdmin); + $configName = $this->checkMeilisearchConfigName($meilisearchAdmin); + $schemaName = $this->checkMeilisearchSchemaName($meilisearchAdmin); if ($this->responseStatus !== Status::OK) { - $header = 'Failed contacting the Solr server.'; + $header = 'Failed contacting the Meilisearch server.'; } $variables = [ 'header' => $header, - 'connection' => $solrConnection, - 'solr' => $solrAdmin, - 'solrVersion' => $solrVersion, + 'connection' => $meilisearchConnection, + 'meilisearch' => $meilisearchAdmin, + 'meilisearchVersion' => $meilisearchVersion, 'pingTime' => $pingTime, 'configName' => $configName, 'schemaName' => $schemaName, 'accessFilter' => $accessFilter ]; - $report = $this->getRenderedReport('SolrStatus.html', $variables); + $report = $this->getRenderedReport('MeilisearchStatus.html', $variables); return GeneralUtility::makeInstance( Status::class, - /** @scrutinizer ignore-type */ 'Apache Solr', + /** @scrutinizer ignore-type */ 'Meilisearch', /** @scrutinizer ignore-type */ '', /** @scrutinizer ignore-type */ $report, /** @scrutinizer ignore-type */ $this->responseStatus @@ -145,34 +145,34 @@ class SolrStatus extends AbstractSolrStatus } /** - * Checks the solr version and adds it to the report. + * Checks the meilisearch version and adds it to the report. * - * @param SolrAdminService $solr - * @return string solr version + * @param MeilisearchAdminService $meilisearch + * @return string meilisearch version */ - protected function checkSolrVersion(SolrAdminService $solr) + protected function checkMeilisearchVersion(MeilisearchAdminService $meilisearch) { try { - $solrVersion = $this->formatSolrVersion($solr->getSolrServerVersion()); + $meilisearchVersion = $this->formatMeilisearchVersion($meilisearch->getMeilisearchServerVersion()); } catch (\Exception $e) { $this->responseStatus = Status::ERROR; - $solrVersion = 'Error getting solr version: ' . $e->getMessage(); + $meilisearchVersion = 'Error getting meilisearch version: ' . $e->getMessage(); } - return $solrVersion; + return $meilisearchVersion; } /** * Checks the access filter setup and adds it to the report. * - * @param SolrAdminService $solrAdminService + * @param MeilisearchAdminService $meilisearchAdminService * @return string */ - protected function checkAccessFilter(SolrAdminService $solrAdminService) + protected function checkAccessFilter(MeilisearchAdminService $meilisearchAdminService) { try { $accessFilterPluginStatus = GeneralUtility::makeInstance(AccessFilterPluginInstalledStatus::class); - $accessFilterPluginVersion = $accessFilterPluginStatus->getInstalledPluginVersion($solrAdminService); + $accessFilterPluginVersion = $accessFilterPluginStatus->getInstalledPluginVersion($meilisearchAdminService); $accessFilterMessage = $accessFilterPluginVersion; } catch (\Exception $e) { $this->responseStatus = Status::ERROR; @@ -184,13 +184,13 @@ class SolrStatus extends AbstractSolrStatus /** * Checks the ping time and adds it to the report. * - * @param SolrAdminService $solrAdminService + * @param MeilisearchAdminService $meilisearchAdminService * @return string */ - protected function checkPingTime(SolrAdminService $solrAdminService) + protected function checkPingTime(MeilisearchAdminService $meilisearchAdminService) { try { - $pingQueryTime = $solrAdminService->getPingRoundTripRuntime(); + $pingQueryTime = $meilisearchAdminService->getPingRoundTripRuntime(); $pingMessage = (int)$pingQueryTime . ' ms'; } catch (PingFailedException $e) { $this->responseStatus = Status::ERROR; @@ -200,64 +200,64 @@ class SolrStatus extends AbstractSolrStatus } /** - * Checks the solr config name and adds it to the report. + * Checks the meilisearch config name and adds it to the report. * - * @param SolrAdminService $solrAdminService + * @param MeilisearchAdminService $meilisearchAdminService * @return string */ - protected function checkSolrConfigName(SolrAdminService $solrAdminService) + protected function checkMeilisearchConfigName(MeilisearchAdminService $meilisearchAdminService) { try { - $solrConfigMessage = $solrAdminService->getSolrconfigName(); + $meilisearchConfigMessage = $meilisearchAdminService->getMeilisearchconfigName(); } catch (\Exception $e) { $this->responseStatus = Status::ERROR; - $solrConfigMessage = 'Error determining solr config: ' . $e->getMessage(); + $meilisearchConfigMessage = 'Error determining meilisearch config: ' . $e->getMessage(); } - return $solrConfigMessage; + return $meilisearchConfigMessage; } /** - * Checks the solr schema name and adds it to the report. + * Checks the meilisearch schema name and adds it to the report. * - * @param SolrAdminService $solrAdminService + * @param MeilisearchAdminService $meilisearchAdminService * @return string */ - protected function checkSolrSchemaName(SolrAdminService $solrAdminService) + protected function checkMeilisearchSchemaName(MeilisearchAdminService $meilisearchAdminService) { try { - $solrSchemaMessage = $solrAdminService->getSchema()->getName(); + $meilisearchSchemaMessage = $meilisearchAdminService->getSchema()->getName(); } catch (\Exception $e) { $this->responseStatus = Status::ERROR; - $solrSchemaMessage = 'Error determining schema name: ' . $e->getMessage(); + $meilisearchSchemaMessage = 'Error determining schema name: ' . $e->getMessage(); } - return $solrSchemaMessage; + return $meilisearchSchemaMessage; } /** - * Formats the Apache Solr server version number. By default this is going + * Formats the Meilisearch server version number. By default this is going * to be the simple major.minor.patch-level version. Custom Builds provide * more information though, in case of custom builds, their complete * version will be added, too. * - * @param string $solrVersion Unformatted Apache Solr version number as provided by Solr. + * @param string $meilisearchVersion Unformatted Meilisearch version number as provided by Meilisearch. * @return string formatted short version number, in case of custom builds followed by the complete version number */ - protected function formatSolrVersion($solrVersion) + protected function formatMeilisearchVersion($meilisearchVersion) { - $explodedSolrVersion = explode('.', $solrVersion); + $explodedMeilisearchVersion = explode('.', $meilisearchVersion); - $shortSolrVersion = $explodedSolrVersion[0] - . '.' . $explodedSolrVersion[1] - . '.' . $explodedSolrVersion[2]; + $shortMeilisearchVersion = $explodedMeilisearchVersion[0] + . '.' . $explodedMeilisearchVersion[1] + . '.' . $explodedMeilisearchVersion[2]; - $formattedSolrVersion = $shortSolrVersion; + $formattedMeilisearchVersion = $shortMeilisearchVersion; - if ($solrVersion != $shortSolrVersion) { - $formattedSolrVersion .= ' (' . $solrVersion . ')'; + if ($meilisearchVersion != $shortMeilisearchVersion) { + $formattedMeilisearchVersion .= ' (' . $meilisearchVersion . ')'; } - return $formattedSolrVersion; + return $formattedMeilisearchVersion; } } diff --git a/Classes/Report/SolrVersionStatus.php b/Classes/Report/MeilisearchVersionStatus.php similarity index 54% rename from Classes/Report/SolrVersionStatus.php rename to Classes/Report/MeilisearchVersionStatus.php index ec3215a..2978c7e 100644 --- a/Classes/Report/SolrVersionStatus.php +++ b/Classes/Report/MeilisearchVersionStatus.php @@ -26,45 +26,45 @@ namespace WapplerSystems\Meilisearch\Report; ***************************************************************/ use WapplerSystems\Meilisearch\ConnectionManager; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Reports\Status; /** - * Provides a status report about whether the installed Solr version matches + * Provides a status report about whether the installed Meilisearch version matches * the required version. * * @author Stefan Sprenger */ -class SolrVersionStatus extends AbstractSolrStatus +class MeilisearchVersionStatus extends AbstractMeilisearchStatus { /** - * Required Solr version. The version that gets installed when using the - * provided install script EXT:meilisearch/Resources/Private/Install/install-solr.sh + * Required Meilisearch version. The version that gets installed when using the + * provided install script EXT:meilisearch/Resources/Private/Install/install-meilisearch.sh * * @var string */ const REQUIRED_SOLR_VERSION = '8.8.1'; /** - * Compiles a version check against each configured Solr server. + * Compiles a version check against each configured Meilisearch server. * */ public function getStatus() { $reports = []; - $solrConnections = GeneralUtility::makeInstance(ConnectionManager::class)->getAllConnections(); + $meilisearchConnections = GeneralUtility::makeInstance(ConnectionManager::class)->getAllConnections(); - foreach ($solrConnections as $solrConnection) { - $coreAdmin = $solrConnection->getAdminService(); - /** @var $solrConnection SolrConnection */ + foreach ($meilisearchConnections as $meilisearchConnection) { + $coreAdmin = $meilisearchConnection->getAdminService(); + /** @var $meilisearchConnection MeilisearchConnection */ if (!$coreAdmin->ping()) { $url = $coreAdmin->__toString(); - $pingFailedMsg = 'Could not ping solr server, can not check version ' . (string)$url; + $pingFailedMsg = 'Could not ping meilisearch server, can not check version ' . (string)$url; $status = GeneralUtility::makeInstance( Status::class, - /** @scrutinizer ignore-type */ 'Apache Solr Version', + /** @scrutinizer ignore-type */ 'Meilisearch Version', /** @scrutinizer ignore-type */ 'Not accessible', /** @scrutinizer ignore-type */ $pingFailedMsg, /** @scrutinizer ignore-type */ Status::ERROR @@ -73,19 +73,19 @@ class SolrVersionStatus extends AbstractSolrStatus continue; } - $solrVersion = $coreAdmin->getSolrServerVersion(); - $isOutdatedVersion = version_compare($this->getCleanSolrVersion($solrVersion), self::REQUIRED_SOLR_VERSION, '<'); + $meilisearchVersion = $coreAdmin->getMeilisearchServerVersion(); + $isOutdatedVersion = version_compare($this->getCleanMeilisearchVersion($meilisearchVersion), self::REQUIRED_SOLR_VERSION, '<'); if (!$isOutdatedVersion) { continue; } - $formattedVersion = $this->formatSolrVersion($solrVersion); - $variables = ['requiredVersion' => self::REQUIRED_SOLR_VERSION, 'currentVersion' => $formattedVersion, 'solr' => $coreAdmin]; - $report = $this->getRenderedReport('SolrVersionStatus.html', $variables); + $formattedVersion = $this->formatMeilisearchVersion($meilisearchVersion); + $variables = ['requiredVersion' => self::REQUIRED_SOLR_VERSION, 'currentVersion' => $formattedVersion, 'meilisearch' => $coreAdmin]; + $report = $this->getRenderedReport('MeilisearchVersionStatus.html', $variables); $status = GeneralUtility::makeInstance( Status::class, - /** @scrutinizer ignore-type */ 'Apache Solr Version', + /** @scrutinizer ignore-type */ 'Meilisearch Version', /** @scrutinizer ignore-type */ 'Outdated, Unsupported', /** @scrutinizer ignore-type */ $report, /** @scrutinizer ignore-type */ Status::ERROR @@ -98,41 +98,41 @@ class SolrVersionStatus extends AbstractSolrStatus } /** - * Gets the clean Solr version in case of a custom build which may have + * Gets the clean Meilisearch version in case of a custom build which may have * additional information in the version string. * - * @param string $solrVersion Unformatted Apache Solr version number as provided by Solr. - * @return string Clean Solr version number: mayor.minor.patchlevel + * @param string $meilisearchVersion Unformatted Meilisearch version number as provided by Meilisearch. + * @return string Clean Meilisearch version number: mayor.minor.patchlevel */ - protected function getCleanSolrVersion($solrVersion) + protected function getCleanMeilisearchVersion($meilisearchVersion) { - $explodedSolrVersion = explode('.', $solrVersion); + $explodedMeilisearchVersion = explode('.', $meilisearchVersion); - $shortSolrVersion = $explodedSolrVersion[0] - . '.' . $explodedSolrVersion[1] - . '.' . $explodedSolrVersion[2]; + $shortMeilisearchVersion = $explodedMeilisearchVersion[0] + . '.' . $explodedMeilisearchVersion[1] + . '.' . $explodedMeilisearchVersion[2]; - return $shortSolrVersion; + return $shortMeilisearchVersion; } /** - * Formats the Apache Solr server version number. By default this is going + * Formats the Meilisearch server version number. By default this is going * to be the simple major.minor.patch-level version. Custom Builds provide * more information though, in case of custom builds, their complete * version will be added, too. * - * @param string $solrVersion Unformatted Apache Solr version number as provided by Solr. + * @param string $meilisearchVersion Unformatted Meilisearch version number as provided by Meilisearch. * @return string formatted short version number, in case of custom builds followed by the complete version number */ - protected function formatSolrVersion($solrVersion) + protected function formatMeilisearchVersion($meilisearchVersion) { - $shortSolrVersion = $this->getCleanSolrVersion($solrVersion); - $formattedSolrVersion = $shortSolrVersion; + $shortMeilisearchVersion = $this->getCleanMeilisearchVersion($meilisearchVersion); + $formattedMeilisearchVersion = $shortMeilisearchVersion; - if ($solrVersion != $shortSolrVersion) { - $formattedSolrVersion .= ' (' . $solrVersion . ')'; + if ($meilisearchVersion != $shortMeilisearchVersion) { + $formattedMeilisearchVersion .= ' (' . $meilisearchVersion . ')'; } - return $formattedSolrVersion; + return $formattedMeilisearchVersion; } } diff --git a/Classes/Report/SchemaStatus.php b/Classes/Report/SchemaStatus.php index e62b4d3..1c341d0 100644 --- a/Classes/Report/SchemaStatus.php +++ b/Classes/Report/SchemaStatus.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\Report; ***************************************************************/ use WapplerSystems\Meilisearch\ConnectionManager; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Reports\Status; @@ -35,7 +35,7 @@ use TYPO3\CMS\Reports\Status; * * @author Ingo Renner */ -class SchemaStatus extends AbstractSolrStatus +class SchemaStatus extends AbstractMeilisearchStatus { /** @@ -53,7 +53,7 @@ class SchemaStatus extends AbstractSolrStatus /** * Compiles a collection of schema version checks against each configured - * Solr server. Only adds an entry if a schema other than the + * Meilisearch server. Only adds an entry if a schema other than the * recommended one was found. * */ @@ -62,17 +62,17 @@ class SchemaStatus extends AbstractSolrStatus $reports = []; /** @var $connectionManager ConnectionManager */ $connectionManager = GeneralUtility::makeInstance(ConnectionManager::class); - $solrConnections = $connectionManager->getAllConnections(); + $meilisearchConnections = $connectionManager->getAllConnections(); - foreach ($solrConnections as $solrConnection) { - $adminService = $solrConnection->getAdminService(); - /** @var $solrConnection SolrConnection */ + foreach ($meilisearchConnections as $meilisearchConnection) { + $adminService = $meilisearchConnection->getAdminService(); + /** @var $meilisearchConnection MeilisearchConnection */ if (!$adminService->ping()) { $url = $adminService->__toString(); - $pingFailedMsg = 'Could not ping solr server, can not check version ' . (string)$url; + $pingFailedMsg = 'Could not ping meilisearch server, can not check version ' . (string)$url; $status = GeneralUtility::makeInstance( Status::class, - /** @scrutinizer ignore-type */ 'Apache Solr Version', + /** @scrutinizer ignore-type */ 'Meilisearch Version', /** @scrutinizer ignore-type */ 'Not accessible', /** @scrutinizer ignore-type */ $pingFailedMsg, /** @scrutinizer ignore-type */ Status::ERROR @@ -83,7 +83,7 @@ class SchemaStatus extends AbstractSolrStatus $isWrongSchema = $adminService->getSchema()->getName() != self::RECOMMENDED_SCHEMA_VERSION; if ($isWrongSchema) { - $variables = ['solr' => $adminService, 'recommendedVersion' => self::RECOMMENDED_SCHEMA_VERSION]; + $variables = ['meilisearch' => $adminService, 'recommendedVersion' => self::RECOMMENDED_SCHEMA_VERSION]; $report = $this->getRenderedReport('SchemaStatus.html', $variables); $status = GeneralUtility::makeInstance( Status::class, diff --git a/Classes/Report/SiteHandlingStatus.php b/Classes/Report/SiteHandlingStatus.php index 6cb7d20..1ce48ad 100644 --- a/Classes/Report/SiteHandlingStatus.php +++ b/Classes/Report/SiteHandlingStatus.php @@ -42,7 +42,7 @@ use TYPO3\CMS\Reports\Status; * * Entry Point[base] scheme expects -> http[s] * * Entry Point[base] authority expects -> [user-info@]host[:port] */ -class SiteHandlingStatus extends AbstractSolrStatus +class SiteHandlingStatus extends AbstractMeilisearchStatus { const TITLE_SITE_HANDLING_CONFIGURATION = 'Site handling configuration'; @@ -66,7 +66,7 @@ class SiteHandlingStatus extends AbstractSolrStatus protected $extensionConfiguration = null; /** - * SolrStatus constructor. + * MeilisearchStatus constructor. * @param ExtensionConfiguration $extensionConfiguration * @param SiteRepository|null $siteRepository */ diff --git a/Classes/Response/Processor/ResponseProcessor.php b/Classes/Response/Processor/ResponseProcessor.php index ca9c8ce..0778e3e 100644 --- a/Classes/Response/Processor/ResponseProcessor.php +++ b/Classes/Response/Processor/ResponseProcessor.php @@ -28,7 +28,7 @@ namespace WapplerSystems\Meilisearch\Response\Processor; ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Search\Query\Query; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; /** * ResponseProcessor interface, allows to process search responses. diff --git a/Classes/Search.php b/Classes/Search.php index 0056a72..c82b5b5 100644 --- a/Classes/Search.php +++ b/Classes/Search.php @@ -26,14 +26,14 @@ namespace WapplerSystems\Meilisearch; use WapplerSystems\Meilisearch\Domain\Search\Query\Query; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; -use WapplerSystems\Meilisearch\System\Solr\SolrCommunicationException; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchCommunicationException; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Class to handle solr search requests + * Class to handle meilisearch search requests * * @author Ingo Renner */ @@ -41,11 +41,11 @@ class Search { /** - * An instance of the Solr service + * An instance of the Meilisearch service * - * @var SolrConnection + * @var MeilisearchConnection */ - protected $solr = null; + protected $meilisearch = null; /** * The search query @@ -69,56 +69,56 @@ class Search // TODO Override __clone to reset $response and $hasSearched /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; /** * Constructor * - * @param SolrConnection $solrConnection The Solr connection to use for searching + * @param MeilisearchConnection $meilisearchConnection The Meilisearch connection to use for searching */ - public function __construct(SolrConnection $solrConnection = null) + public function __construct(MeilisearchConnection $meilisearchConnection = null) { - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); - $this->solr = $solrConnection; + $this->meilisearch = $meilisearchConnection; - if (is_null($solrConnection)) { + if (is_null($meilisearchConnection)) { /** @var $connectionManager ConnectionManager */ $connectionManager = GeneralUtility::makeInstance(ConnectionManager::class); - $this->solr = $connectionManager->getConnectionByPageId($GLOBALS['TSFE']->id, Util::getLanguageUid()); + $this->meilisearch = $connectionManager->getConnectionByPageId($GLOBALS['TSFE']->id, Util::getLanguageUid()); } - $this->configuration = Util::getSolrConfiguration(); + $this->configuration = Util::getMeilisearchConfiguration(); } /** - * Gets the Solr connection used by this search. + * Gets the Meilisearch connection used by this search. * - * @return SolrConnection Solr connection + * @return MeilisearchConnection Meilisearch connection */ - public function getSolrConnection() + public function getMeilisearchConnection() { - return $this->solr; + return $this->meilisearch; } /** - * Sets the Solr connection used by this search. + * Sets the Meilisearch connection used by this search. * * Since WapplerSystems\Meilisearch\Search is a \TYPO3\CMS\Core\SingletonInterface, this is needed to * be able to switch between multiple cores/connections during * one request * - * @param SolrConnection $solrConnection + * @param MeilisearchConnection $meilisearchConnection */ - public function setSolrConnection(SolrConnection $solrConnection) + public function setMeilisearchConnection(MeilisearchConnection $meilisearchConnection) { - $this->solr = $solrConnection; + $this->meilisearch = $meilisearchConnection; } /** - * Executes a query against a Solr server. + * Executes a query against a Meilisearch server. * * 1) Gets the query string * 2) Conducts the actual search @@ -127,7 +127,7 @@ class Search * @param Query $query The query with keywords, filters, and so on. * @param int $offset Result offset for pagination. * @param int $limit Maximum number of results to return. If set to NULL, this value is taken from the query object. - * @return ResponseAdapter Solr response + * @return ResponseAdapter Meilisearch response * @throws \Exception */ public function search(Query $query, $offset = 0, $limit = 10) @@ -140,10 +140,10 @@ class Search $query->setStart($offset); try { - $response = $this->solr->getReadService()->search($query); + $response = $this->meilisearch->getReadService()->search($query); if ($this->configuration->getLoggingQueryQueryString()) { - $this->logger->log(SolrLogManager::INFO, - 'Querying Solr, getting result', + $this->logger->log(MeilisearchLogManager::INFO, + 'Querying Meilisearch, getting result', [ 'query string' => $query->getQuery(), 'query parameters' => $query->getRequestBuilder()->build($query)->getParams(), @@ -151,11 +151,11 @@ class Search ] ); } - } catch (SolrCommunicationException $e) { + } catch (MeilisearchCommunicationException $e) { if ($this->configuration->getLoggingExceptions()) { $this->logger->log( - SolrLogManager::ERROR, - 'Exception while querying Solr', + MeilisearchLogManager::ERROR, + 'Exception while querying Meilisearch', [ 'exception' => $e->__toString(), 'query' => (array)$query, @@ -174,7 +174,7 @@ class Search } /** - * Sends a ping to the solr server to see whether it is available. + * Sends a ping to the meilisearch server to see whether it is available. * * @param bool $useCache Set to true if the cache should be used. * @return bool Returns TRUE on successful ping. @@ -182,19 +182,19 @@ class Search */ public function ping($useCache = true) { - $solrAvailable = false; + $meilisearchAvailable = false; try { - if (!$this->solr->getReadService()->ping($useCache)) { - throw new \Exception('Solr Server not responding.', 1237475791); + if (!$this->meilisearch->getReadService()->ping($useCache)) { + throw new \Exception('Meilisearch Server not responding.', 1237475791); } - $solrAvailable = true; + $meilisearchAvailable = true; } catch (\Exception $e) { if ($this->configuration->getLoggingExceptions()) { $this->logger->log( - SolrLogManager::ERROR, - 'Exception while trying to ping the solr server', + MeilisearchLogManager::ERROR, + 'Exception while trying to ping the meilisearch server', [ $e->__toString() ] @@ -202,7 +202,7 @@ class Search } } - return $solrAvailable; + return $meilisearchAvailable; } /** @@ -216,7 +216,7 @@ class Search } /** - * Gets the Solr response + * Gets the Meilisearch response * * @return ResponseAdapter */ @@ -242,7 +242,7 @@ class Search } /** - * Gets the time Solr took to execute the query and return the result. + * Gets the time Meilisearch took to execute the query and return the result. * * @return int Query time in milliseconds */ diff --git a/Classes/Search/AccessComponent.php b/Classes/Search/AccessComponent.php index 24e9e5f..836afae 100644 --- a/Classes/Search/AccessComponent.php +++ b/Classes/Search/AccessComponent.php @@ -38,7 +38,7 @@ class AccessComponent extends AbstractComponent implements QueryAware { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/AnalysisComponent.php b/Classes/Search/AnalysisComponent.php index c1b2117..9c2ce37 100644 --- a/Classes/Search/AnalysisComponent.php +++ b/Classes/Search/AnalysisComponent.php @@ -37,7 +37,7 @@ class AnalysisComponent extends AbstractComponent implements QueryAware { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/DebugComponent.php b/Classes/Search/DebugComponent.php index c3fdcaf..4ed9b50 100644 --- a/Classes/Search/DebugComponent.php +++ b/Classes/Search/DebugComponent.php @@ -40,7 +40,7 @@ class DebugComponent extends AbstractComponent implements QueryAware, SearchRequ { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/ElevationComponent.php b/Classes/Search/ElevationComponent.php index 6595953..07ff8e1 100644 --- a/Classes/Search/ElevationComponent.php +++ b/Classes/Search/ElevationComponent.php @@ -40,6 +40,6 @@ class ElevationComponent extends AbstractComponent */ public function initializeSearchComponent() { - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchQuery']['elevation'] = Elevation::class; + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifySearchQuery']['elevation'] = Elevation::class; } } diff --git a/Classes/Search/FacetingComponent.php b/Classes/Search/FacetingComponent.php index 539b888..dacb65b 100644 --- a/Classes/Search/FacetingComponent.php +++ b/Classes/Search/FacetingComponent.php @@ -41,7 +41,7 @@ class FacetingComponent extends AbstractComponent public function initializeSearchComponent() { if ($this->searchConfiguration['faceting']) { - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchQuery']['faceting'] = Faceting::class; + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifySearchQuery']['faceting'] = Faceting::class; } } } diff --git a/Classes/Search/HighlightingComponent.php b/Classes/Search/HighlightingComponent.php index be2e068..15ea456 100644 --- a/Classes/Search/HighlightingComponent.php +++ b/Classes/Search/HighlightingComponent.php @@ -37,7 +37,7 @@ class HighlightingComponent extends AbstractComponent implements QueryAware { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/LastSearchesComponent.php b/Classes/Search/LastSearchesComponent.php index af3f41f..0c1c979 100644 --- a/Classes/Search/LastSearchesComponent.php +++ b/Classes/Search/LastSearchesComponent.php @@ -41,7 +41,7 @@ class LastSearchesComponent extends AbstractComponent public function initializeSearchComponent() { if ($this->searchConfiguration['lastSearches']) { - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['afterSearch']['lastSearches'] = LastSearchesWriterProcessor::class; + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['afterSearch']['lastSearches'] = LastSearchesWriterProcessor::class; } } } diff --git a/Classes/Search/RelevanceComponent.php b/Classes/Search/RelevanceComponent.php index 4b06ecb..9882d16 100644 --- a/Classes/Search/RelevanceComponent.php +++ b/Classes/Search/RelevanceComponent.php @@ -37,7 +37,7 @@ class RelevanceComponent extends AbstractComponent implements QueryAware { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/ResponseModifier.php b/Classes/Search/ResponseModifier.php index b28a320..6d06482 100644 --- a/Classes/Search/ResponseModifier.php +++ b/Classes/Search/ResponseModifier.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\Search; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Solr\ResponseAdapter; +use WapplerSystems\Meilisearch\System\Meilisearch\ResponseAdapter; /** * ResponseModifier interface, allows to modify the search response diff --git a/Classes/Search/SortingComponent.php b/Classes/Search/SortingComponent.php index a26f9a0..3e73a54 100644 --- a/Classes/Search/SortingComponent.php +++ b/Classes/Search/SortingComponent.php @@ -43,7 +43,7 @@ class SortingComponent extends AbstractComponent implements QueryAware, SearchRe { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/SpellcheckingComponent.php b/Classes/Search/SpellcheckingComponent.php index bf86a5c..8679492 100644 --- a/Classes/Search/SpellcheckingComponent.php +++ b/Classes/Search/SpellcheckingComponent.php @@ -37,7 +37,7 @@ class SpellcheckingComponent extends AbstractComponent implements QueryAware { /** - * Solr query + * Meilisearch query * * @var Query */ diff --git a/Classes/Search/StatisticsComponent.php b/Classes/Search/StatisticsComponent.php index 97a0aa2..1066914 100644 --- a/Classes/Search/StatisticsComponent.php +++ b/Classes/Search/StatisticsComponent.php @@ -58,13 +58,13 @@ class StatisticsComponent extends AbstractComponent implements SearchRequestAwar */ public function initializeSearchComponent() { - $solrConfiguration = $this->seachRequest->getContextTypoScriptConfiguration(); + $meilisearchConfiguration = $this->seachRequest->getContextTypoScriptConfiguration(); - if ($solrConfiguration->getStatistics()) { - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['afterSearch']['statistics'] = StatisticsWriterProcessor::class; + if ($meilisearchConfiguration->getStatistics()) { + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['afterSearch']['statistics'] = StatisticsWriterProcessor::class; // Only if addDebugData is enabled add Query modifier - if ($solrConfiguration->getStatisticsAddDebugData()) { - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchQuery']['statistics'] = Statistics::class; + if ($meilisearchConfiguration->getStatisticsAddDebugData()) { + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['modifySearchQuery']['statistics'] = Statistics::class; } } } diff --git a/Classes/SubstitutePageIndexer.php b/Classes/SubstitutePageIndexer.php index 8dd07dd..cb1344f 100644 --- a/Classes/SubstitutePageIndexer.php +++ b/Classes/SubstitutePageIndexer.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Solr\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; /** * Substitute page indexer interface, describes the method an indexer must @@ -42,7 +42,7 @@ interface SubstitutePageIndexer * returns a substitute document for the currently being indexed page * * @param Document $originalPageDocument The original page document. - * @return Document returns an \WapplerSystems\Meilisearch\System\Solr\Document\Document object that replace the default page document + * @return Document returns an \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document object that replace the default page document */ public function getPageDocument(Document $originalPageDocument); } diff --git a/Classes/System/Configuration/ExtensionConfiguration.php b/Classes/System/Configuration/ExtensionConfiguration.php index d5a3a36..7f5f980 100644 --- a/Classes/System/Configuration/ExtensionConfiguration.php +++ b/Classes/System/Configuration/ExtensionConfiguration.php @@ -107,7 +107,7 @@ class ExtensionConfiguration */ public function getIsAllowLegacySiteModeEnabled(): bool { - trigger_error('solr:deprecation: Method getIsAllowLegacySiteModeEnabled is deprecated since EXT:meilisearch 11 and will be removed in 12. Since EXT:meilisearch 10 legacy site handling is deprecated and was removed in EXT:meilisearch 11.', E_USER_DEPRECATED); + trigger_error('meilisearch:deprecation: Method getIsAllowLegacySiteModeEnabled is deprecated since EXT:meilisearch 11 and will be removed in 12. Since EXT:meilisearch 10 legacy site handling is deprecated and was removed in EXT:meilisearch 11.', E_USER_DEPRECATED); //@todo throw exception if set to true and log deprecation $legacyModeIsActive = $this->getConfigurationOrDefaultValue('allowLegacySiteMode', false); diff --git a/Classes/System/Configuration/TypoScriptConfiguration.php b/Classes/System/Configuration/TypoScriptConfiguration.php index 1238018..bbb811c 100644 --- a/Classes/System/Configuration/TypoScriptConfiguration.php +++ b/Classes/System/Configuration/TypoScriptConfiguration.php @@ -119,7 +119,7 @@ class TypoScriptConfiguration * In the context of an frontend content element the path plugin.tx_meilisearch is * merged recursive with overrule with the content element specific typoscript * settings, like plugin.tx_meilisearch_PiResults_Results, and possible flex form settings - * (depends on the solr plugin). + * (depends on the meilisearch plugin). * * Example: plugin.tx_meilisearch.search.targetPage * returns $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_meilisearch.']['search.']['targetPage'] @@ -161,7 +161,7 @@ class TypoScriptConfiguration * In the context of an frontend content element the path plugin.tx_meilisearch is * merged recursive with overrule with the content element specific typoscript * settings, like plugin.tx_meilisearch_PiResults_Results, and possible flex form settings - * (depends on the solr plugin). + * (depends on the meilisearch plugin). * * Example: plugin.tx_meilisearch.index.queue.tt_news.fields.content * returns $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_meilisearch.']['index.']['queue.']['tt_news.']['fields.']['content.'] @@ -236,7 +236,7 @@ class TypoScriptConfiguration * @param bool $enableUnsetFeature If set, special values "__UNSET" can be used in the overrule array in order to unset array keys in the original array. * @return TypoScriptConfiguration */ - public function mergeSolrConfiguration(array $configurationToMerge, $addKeys = true, $includeEmptyValues = true, $enableUnsetFeature = true) + public function mergeMeilisearchConfiguration(array $configurationToMerge, $addKeys = true, $includeEmptyValues = true, $enableUnsetFeature = true) { $data = $this->configurationAccess->getData(); ArrayUtility::mergeRecursiveWithOverrule( @@ -253,7 +253,7 @@ class TypoScriptConfiguration } /** - * Returns true when ext_solr is enabled + * Returns true when ext_meilisearch is enabled * * @param boolean $defaultIfEmpty * @return boolean @@ -280,7 +280,7 @@ class TypoScriptConfiguration } /** - * Returns all solr fields names where a mapping is configured in index.additionalFields + * Returns all meilisearch fields names where a mapping is configured in index.additionalFields * * Returns all keys from * plugin.tx_meilisearch.index.additionalFields. @@ -483,7 +483,7 @@ class TypoScriptConfiguration } /** - * Returns all solr fields names where a mapping configuration is set for a certain index configuration + * Returns all meilisearch fields names where a mapping configuration is set for a certain index configuration * * Returns all keys from * plugin.tx_meilisearch.index.queue..fields. @@ -2046,11 +2046,11 @@ class TypoScriptConfiguration } /** - * Controls whether ext-solr will send commits to solr. + * Controls whether ext-meilisearch will send commits to meilisearch. * Beware: If you disable this, you need to ensure * that some other mechanism will commit your changes * otherwise they will never be searchable. - * A good way to achieve this is enabling the solr + * A good way to achieve this is enabling the meilisearch * daemons autoCommit feature. * * plugin.tx_meilisearch.index.enableCommits diff --git a/Classes/System/Hooks/Backend/Toolbar/ClearCacheActionsHook.php b/Classes/System/Hooks/Backend/Toolbar/ClearCacheActionsHook.php index 7be1b82..1f54069 100644 --- a/Classes/System/Hooks/Backend/Toolbar/ClearCacheActionsHook.php +++ b/Classes/System/Hooks/Backend/Toolbar/ClearCacheActionsHook.php @@ -59,7 +59,7 @@ class ClearCacheActionsHook implements ClearCacheActionsHookInterface } /** - * Adds a menu entry to the clear cache menu to detect Solr connections. + * Adds a menu entry to the clear cache menu to detect Meilisearch connections. * * @param array $cacheActions Array of CacheMenuItems * @param array $optionValues Array of AccessConfigurations-identifiers (typically used by userTS with options.clearCache.identifier) @@ -70,13 +70,13 @@ class ClearCacheActionsHook implements ClearCacheActionsHookInterface return; } - $href = $this->uriBuilder->buildUriFromRoute('ajax_solr_updateConnections'); - $optionValues[] = 'clearSolrConnectionCache'; + $href = $this->uriBuilder->buildUriFromRoute('ajax_meilisearch_updateConnections'); + $optionValues[] = 'clearMeilisearchConnectionCache'; $cacheActions[] = [ - 'id' => 'clearSolrConnectionCache', - 'title' => 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:cache_initialize_solr_connections', + 'id' => 'clearMeilisearchConnectionCache', + 'title' => 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:cache_initialize_meilisearch_connections', 'href' => $href, - 'iconIdentifier' => 'extensions-solr-module-initsolrconnections' + 'iconIdentifier' => 'extensions-meilisearch-module-initmeilisearchconnections' ]; } } diff --git a/Classes/System/Logging/DebugWriter.php b/Classes/System/Logging/DebugWriter.php index 6da8f60..fb80c7f 100644 --- a/Classes/System/Logging/DebugWriter.php +++ b/Classes/System/Logging/DebugWriter.php @@ -77,7 +77,7 @@ class DebugWriter */ protected function getIsDebugOutputEnabled() { - return Util::getSolrConfiguration()->getLoggingDebugOutput(); + return Util::getMeilisearchConfiguration()->getLoggingDebugOutput(); } /** @@ -90,7 +90,7 @@ class DebugWriter $parameters = ['extKey' => 'meilisearch', 'msg' => $message, 'level' => $level, 'data' => $data]; $message = isset($parameters['msg']) ? $parameters['msg'] : ''; if (TYPO3_MODE === 'BE') { - DebugUtility::debug($parameters, $parameters['extKey'], 'DevLog ext:solr: ' . $message); + DebugUtility::debug($parameters, $parameters['extKey'], 'DevLog ext:meilisearch: ' . $message); } else { echo $message . ':
'; DebuggerUtility::var_dump($parameters); diff --git a/Classes/System/Logging/SolrLogManager.php b/Classes/System/Logging/MeilisearchLogManager.php similarity index 97% rename from Classes/System/Logging/SolrLogManager.php rename to Classes/System/Logging/MeilisearchLogManager.php index 67cfba2..f174f00 100644 --- a/Classes/System/Logging/SolrLogManager.php +++ b/Classes/System/Logging/MeilisearchLogManager.php @@ -35,7 +35,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; * * @author Thomas Hohn */ -class SolrLogManager +class MeilisearchLogManager { const WARNING = LogLevel::WARNING; const ERROR = LogLevel::ERROR; @@ -58,7 +58,7 @@ class SolrLogManager protected $className = ''; /** - * SolrLogManager constructor. + * MeilisearchLogManager constructor. * * @param string $className * @param DebugWriter $debugWriter diff --git a/Classes/System/Solr/Document/Document.php b/Classes/System/Meilisearch/Document/Document.php similarity index 95% rename from Classes/System/Solr/Document/Document.php rename to Classes/System/Meilisearch/Document/Document.php index f7dadde..41c7ecf 100644 --- a/Classes/System/Solr/Document/Document.php +++ b/Classes/System/Meilisearch/Document/Document.php @@ -1,5 +1,5 @@ solrResponse; + return $this->meilisearchResponse; } /** - * @param ResponseAdapter $solrResponse + * @param ResponseAdapter $meilisearchResponse */ - public function setSolrResponse(ResponseAdapter $solrResponse) + public function setMeilisearchResponse(ResponseAdapter $meilisearchResponse) { - $this->solrResponse = $solrResponse; + $this->meilisearchResponse = $meilisearchResponse; } } diff --git a/Classes/System/Solr/SolrConnection.php b/Classes/System/Meilisearch/MeilisearchConnection.php similarity index 55% rename from Classes/System/Solr/SolrConnection.php rename to Classes/System/Meilisearch/MeilisearchConnection.php index 62298c8..47bfbf1 100644 --- a/Classes/System/Solr/SolrConnection.php +++ b/Classes/System/Meilisearch/MeilisearchConnection.php @@ -1,5 +1,5 @@ */ -class SolrConnection +class MeilisearchConnection { /** - * @var SolrAdminService + * @var MeilisearchAdminService */ protected $adminService; /** - * @var SolrReadService + * @var MeilisearchReadService */ protected $readService; /** - * @var SolrWriteService + * @var MeilisearchWriteService */ protected $writeService; @@ -86,12 +85,12 @@ class SolrConnection protected $schemaParser = null; /** - * @var Node[] + * @var Client[] */ protected $nodes = []; /** - * @var SolrLogManager + * @var MeilisearchLogManager */ protected $logger = null; @@ -123,13 +122,13 @@ class SolrConnection /** * Constructor * - * @param Node $readNode - * @param Node $writeNode + * @param Client $readNode + * @param Client $writeNode * @param ?TypoScriptConfiguration $configuration * @param ?SynonymParser $synonymParser * @param ?StopWordParser $stopWordParser * @param ?SchemaParser $schemaParser - * @param ?SolrLogManager $logManager + * @param ?MeilisearchLogManager $logManager * @param ?ClientInterface $psr7Client * @param ?RequestFactoryInterface $requestFactory * @param ?StreamFactoryInterface $streamFactory @@ -139,45 +138,41 @@ class SolrConnection * @throws NotFoundExceptionInterface */ public function __construct( - Node $readNode, - Node $writeNode, + Client $readNode, + Client $writeNode, TypoScriptConfiguration $configuration = null, SynonymParser $synonymParser = null, StopWordParser $stopWordParser = null, SchemaParser $schemaParser = null, - SolrLogManager $logManager = null, + MeilisearchLogManager $logManager = null, ClientInterface $psr7Client = null, - RequestFactoryInterface $requestFactory = null, - StreamFactoryInterface $streamFactory = null, EventDispatcherInterface $eventDispatcher = null ) { $this->nodes['read'] = $readNode; $this->nodes['write'] = $writeNode; $this->nodes['admin'] = $writeNode; - $this->configuration = $configuration ?? Util::getSolrConfiguration(); + $this->configuration = $configuration ?? Util::getMeilisearchConfiguration(); $this->synonymParser = $synonymParser; $this->stopWordParser = $stopWordParser; $this->schemaParser = $schemaParser; $this->logger = $logManager; $this->psr7Client = $psr7Client ?? GeneralUtility::getContainer()->get(ClientInterface::class); - $this->requestFactory = $requestFactory ?? GeneralUtility::getContainer()->get(RequestFactoryInterface::class); - $this->streamFactory = $streamFactory ?? GeneralUtility::getContainer()->get(StreamFactoryInterface::class); $this->eventDispatcher = $eventDispatcher ?? GeneralUtility::getContainer()->get(EventDispatcherInterface::class); } /** * @param string $key - * @return Node + * @return Client */ - public function getNode(string $key): Node + public function getNode(string $key): Client { return $this->nodes[$key]; } /** - * @return SolrAdminService + * @return MeilisearchAdminService */ - public function getAdminService(): SolrAdminService + public function getAdminService(): MeilisearchAdminService { if ($this->adminService === null) { $this->adminService = $this->buildAdminService(); @@ -187,21 +182,20 @@ class SolrConnection } /** - * @return SolrAdminService + * @return MeilisearchAdminService * @noinspection PhpIncompatibleReturnTypeInspection */ - protected function buildAdminService(): SolrAdminService + protected function buildAdminService(): MeilisearchAdminService { $endpointKey = 'admin'; $client = $this->getClient($endpointKey); - $this->initializeClient($client, $endpointKey); - return GeneralUtility::makeInstance(SolrAdminService::class, $client, $this->configuration, $this->logger, $this->synonymParser, $this->stopWordParser, $this->schemaParser); + return GeneralUtility::makeInstance(MeilisearchAdminService::class, $client, $this->configuration, $this->logger, $this->synonymParser, $this->stopWordParser, $this->schemaParser); } /** - * @return SolrReadService + * @return MeilisearchReadService */ - public function getReadService(): SolrReadService + public function getReadService(): MeilisearchReadService { if ($this->readService === null) { $this->readService = $this->buildReadService(); @@ -211,21 +205,20 @@ class SolrConnection } /** - * @return SolrReadService + * @return MeilisearchReadService * @noinspection PhpIncompatibleReturnTypeInspection */ - protected function buildReadService(): SolrReadService + protected function buildReadService(): MeilisearchReadService { $endpointKey = 'read'; $client = $this->getClient($endpointKey); - $this->initializeClient($client, $endpointKey); - return GeneralUtility::makeInstance(SolrReadService::class, $client); + return GeneralUtility::makeInstance(MeilisearchReadService::class, $client); } /** - * @return SolrWriteService + * @return MeilisearchWriteService */ - public function getWriteService(): SolrWriteService + public function getWriteService(): MeilisearchWriteService { if ($this->writeService === null) { $this->writeService = $this->buildWriteService(); @@ -235,70 +228,16 @@ class SolrConnection } /** - * @return SolrWriteService + * @return MeilisearchWriteService * @noinspection PhpIncompatibleReturnTypeInspection */ - protected function buildWriteService(): SolrWriteService + protected function buildWriteService(): MeilisearchWriteService { $endpointKey = 'write'; $client = $this->getClient($endpointKey); - $this->initializeClient($client, $endpointKey); - return GeneralUtility::makeInstance(SolrWriteService::class, $client); + return GeneralUtility::makeInstance(MeilisearchWriteService::class, $client); } - /** - * @param Client $client - * @param string $endpointKey - * @return Client - */ - protected function initializeClient(Client $client, string $endpointKey): Client - { - if (trim($this->getNode($endpointKey)->getUsername()) === '') { - return $client; - } - - $username = $this->getNode($endpointKey)->getUsername(); - $password = $this->getNode($endpointKey)->getPassword(); - $this->setAuthenticationOnAllEndpoints($client, $username, $password); - - return $client; - } - - /** - * @param Client $client - * @param string $username - * @param string $password - */ - protected function setAuthenticationOnAllEndpoints(Client $client, string $username, string $password) - { - foreach ($client->getEndpoints() as $endpoint) { - $endpoint->setAuthentication($username, $password); - } - } - - /** - * @param string $endpointKey - * @return Client - */ - protected function getClient(string $endpointKey): Client - { - if ($this->clients[$endpointKey]) { - return $this->clients[$endpointKey]; - } - - $adapter = new Psr18Adapter($this->psr7Client, $this->requestFactory, $this->streamFactory); - - $client = new Client($adapter, $this->eventDispatcher); - $client->getPlugin('postbigrequest'); - $client->clearEndpoints(); - - $newEndpointOptions = $this->getNode($endpointKey)->getSolariumClientOptions(); - $newEndpointOptions['key'] = $endpointKey; - $client->createEndpoint($newEndpointOptions, true); - - $this->clients[$endpointKey] = $client; - return $client; - } /** * @param Client $client diff --git a/Classes/System/Solr/SolrInternalServerErrorException.php b/Classes/System/Meilisearch/MeilisearchIncompleteResponseException.php similarity index 80% rename from Classes/System/Solr/SolrInternalServerErrorException.php rename to Classes/System/Meilisearch/MeilisearchIncompleteResponseException.php index 1d29a2a..d36c5b1 100644 --- a/Classes/System/Solr/SolrInternalServerErrorException.php +++ b/Classes/System/Meilisearch/MeilisearchIncompleteResponseException.php @@ -1,6 +1,6 @@ */ @@ -37,7 +37,7 @@ class SchemaParser { /** - * Parse the solr stopwords response from an json string to an array. + * Parse the meilisearch stopwords response from an json string to an array. * * @param string $jsonString * @return Schema @@ -63,7 +63,7 @@ class SchemaParser } /** - * Extracts the language from a solr schema response. + * Extracts the language from a meilisearch schema response. * * @param \stdClass $schema * @return string @@ -81,7 +81,7 @@ class SchemaParser } // we have a text field foreach ($fieldType->queryAnalyzer->filters as $filter) { - if ($filter->class === 'solr.ManagedSynonymGraphFilterFactory') { + if ($filter->class === 'meilisearch.ManagedSynonymGraphFilterFactory') { $language = $filter->managed; } } diff --git a/Classes/System/Solr/Parser/StopWordParser.php b/Classes/System/Meilisearch/Parser/StopWordParser.php similarity index 83% rename from Classes/System/Solr/Parser/StopWordParser.php rename to Classes/System/Meilisearch/Parser/StopWordParser.php index 5f4b19b..0f3330d 100644 --- a/Classes/System/Solr/Parser/StopWordParser.php +++ b/Classes/System/Meilisearch/Parser/StopWordParser.php @@ -1,6 +1,6 @@ */ @@ -35,7 +35,7 @@ class StopWordParser { /** - * Parse the solr stopwords response from an json string to an array. + * Parse the meilisearch stopwords response from an json string to an array. * * @param string $jsonString * @return array @@ -56,12 +56,12 @@ class StopWordParser /** * @param string|array $stopWords * @return string - * @throws \Apache_Solr_InvalidArgumentException + * @throws \Apache_Meilisearch_InvalidArgumentException */ public function toJson($stopWords) { if (empty($stopWords)) { - throw new \Apache_Solr_InvalidArgumentException('Must provide stop word.'); + throw new \Apache_Meilisearch_InvalidArgumentException('Must provide stop word.'); } if (is_string($stopWords)) { diff --git a/Classes/System/Solr/Parser/SynonymParser.php b/Classes/System/Meilisearch/Parser/SynonymParser.php similarity index 84% rename from Classes/System/Solr/Parser/SynonymParser.php rename to Classes/System/Meilisearch/Parser/SynonymParser.php index f0bdede..5c629a5 100644 --- a/Classes/System/Solr/Parser/SynonymParser.php +++ b/Classes/System/Meilisearch/Parser/SynonymParser.php @@ -1,6 +1,6 @@ */ @@ -35,7 +35,7 @@ class SynonymParser { /** - * Parse the solr synonyms response from an json string to an array. + * Parse the meilisearch synonyms response from an json string to an array. * * @param string $baseWord * @param string $jsonString @@ -62,12 +62,12 @@ class SynonymParser * @param string $baseWord * @param array $synonyms * @return string - * @throws \Apache_Solr_InvalidArgumentException + * @throws \Apache_Meilisearch_InvalidArgumentException */ public function toJson($baseWord, $synonyms) { if (empty($baseWord) || empty($synonyms)) { - throw new \Apache_Solr_InvalidArgumentException('Must provide base word and synonyms.'); + throw new \Apache_Meilisearch_InvalidArgumentException('Must provide base word and synonyms.'); } return json_encode([$baseWord => $synonyms]); diff --git a/Classes/System/Solr/ParsingUtil.php b/Classes/System/Meilisearch/ParsingUtil.php similarity index 90% rename from Classes/System/Solr/ParsingUtil.php rename to Classes/System/Meilisearch/ParsingUtil.php index d443800..495c444 100644 --- a/Classes/System/Solr/ParsingUtil.php +++ b/Classes/System/Meilisearch/ParsingUtil.php @@ -1,8 +1,8 @@ */ diff --git a/Classes/System/Solr/Service/AbstractSolrService.php b/Classes/System/Meilisearch/Service/AbstractMeilisearchService.php similarity index 85% rename from Classes/System/Solr/Service/AbstractSolrService.php rename to Classes/System/Meilisearch/Service/AbstractMeilisearchService.php index 6701e7b..66c3a8a 100644 --- a/Classes/System/Solr/Service/AbstractSolrService.php +++ b/Classes/System/Meilisearch/Service/AbstractMeilisearchService.php @@ -1,5 +1,5 @@ client = $client; - $this->configuration = $typoScriptConfiguration ?? Util::getSolrConfiguration(); - $this->logger = $logManager ?? GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->configuration = $typoScriptConfiguration ?? Util::getMeilisearchConfiguration(); + $this->logger = $logManager ?? GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); } /** - * Returns the path to the core solr path + core path. + * Returns the path to the core meilisearch path + core path. * * @return string */ @@ -105,10 +105,10 @@ abstract class AbstractSolrService } /** - * Creates a string representation of the Solr connection. Specifically - * will return the Solr URL. + * Creates a string representation of the Meilisearch connection. Specifically + * will return the Meilisearch URL. * - * @return string The Solr URL. + * @return string The Meilisearch URL. * @TODO: Add support for API version 2 */ public function __toString() @@ -134,7 +134,7 @@ abstract class AbstractSolrService } /** - * Central method for making a get operation against this Solr Server + * Central method for making a get operation against this Meilisearch Server * * @param string $url * @return ResponseAdapter @@ -145,7 +145,7 @@ abstract class AbstractSolrService } /** - * Central method for making a HTTP DELETE operation against the Solr server + * Central method for making a HTTP DELETE operation against the Meilisearch server * * @param string $url * @return ResponseAdapter @@ -156,7 +156,7 @@ abstract class AbstractSolrService } /** - * Central method for making a post operation against this Solr Server + * Central method for making a post operation against this Meilisearch Server * * @param string $url * @param string $rawPost @@ -189,7 +189,7 @@ abstract class AbstractSolrService $body = '', \Closure $initializeRequest = null ) { - $logSeverity = SolrLogManager::INFO; + $logSeverity = MeilisearchLogManager::INFO; $exception = null; $url = $this->reviseUrl($url); try { @@ -199,12 +199,12 @@ abstract class AbstractSolrService } $response = $this->executeRequest($request); } catch (HttpException $exception) { - $logSeverity = SolrLogManager::ERROR; + $logSeverity = MeilisearchLogManager::ERROR; $response = new ResponseAdapter($exception->getBody(), $exception->getCode(), $exception->getMessage()); } if ($this->configuration->getLoggingQueryRawPost() || $response->getHttpStatus() != 200) { - $message = 'Querying Solr using '.$method; + $message = 'Querying Meilisearch using '.$method; $this->writeLog($logSeverity, $message, $url, $response, $exception, $body); } @@ -251,28 +251,28 @@ abstract class AbstractSolrService * @param integer $logSeverity * @param string $message * @param string $url - * @param ResponseAdapter $solrResponse + * @param ResponseAdapter $meilisearchResponse * @param ?\Exception $exception * @param string $contentSend */ - protected function writeLog($logSeverity, $message, $url, $solrResponse, $exception = null, $contentSend = '') + protected function writeLog($logSeverity, $message, $url, $meilisearchResponse, $exception = null, $contentSend = '') { - $logData = $this->buildLogDataFromResponse($solrResponse, $exception, $url, $contentSend); + $logData = $this->buildLogDataFromResponse($meilisearchResponse, $exception, $url, $contentSend); $this->logger->log($logSeverity, $message, $logData); } /** - * Parses the solr information to build data for the logger. + * Parses the meilisearch information to build data for the logger. * - * @param ResponseAdapter $solrResponse + * @param ResponseAdapter $meilisearchResponse * @param ?\Exception $e * @param string $url * @param string $contentSend * @return array */ - protected function buildLogDataFromResponse(ResponseAdapter $solrResponse, \Exception $e = null, $url = '', $contentSend = '') + protected function buildLogDataFromResponse(ResponseAdapter $meilisearchResponse, \Exception $e = null, $url = '', $contentSend = '') { - $logData = ['query url' => $url, 'response' => (array)$solrResponse]; + $logData = ['query url' => $url, 'response' => (array)$meilisearchResponse]; if ($contentSend !== '') { $logData['content'] = $contentSend; @@ -284,8 +284,8 @@ abstract class AbstractSolrService } else { // trigger data parsing // @extensionScannerIgnoreLine - $solrResponse->response; - $logData['response data'] = print_r($solrResponse, true); + $meilisearchResponse->response; + $logData['response data'] = print_r($meilisearchResponse, true); return $logData; } } @@ -294,13 +294,13 @@ abstract class AbstractSolrService * Call the /admin/ping servlet, can be used to quickly tell if a connection to the * server is available. * - * Simply overrides the SolrPhpClient implementation, changing ping from a + * Simply overrides the MeilisearchPhpClient implementation, changing ping from a * HEAD to a GET request, see http://forge.typo3.org/issues/44167 * * Also does not report the time, see https://forge.typo3.org/issues/64551 * * @param boolean $useCache indicates if the ping result should be cached in the instance or not - * @return bool TRUE if Solr can be reached, FALSE if not + * @return bool TRUE if Meilisearch can be reached, FALSE if not */ public function ping($useCache = true) { @@ -327,14 +327,14 @@ abstract class AbstractSolrService $httpResponse = $this->performPingRequest($useCache); $end = $this->getMilliseconds(); } catch (HttpException $e) { - $message = 'Solr ping failed with unexpected response code: ' . $e->getCode(); + $message = 'Meilisearch ping failed with unexpected response code: ' . $e->getCode(); /** @var $exception \WapplerSystems\Meilisearch\PingFailedException */ $exception = GeneralUtility::makeInstance(PingFailedException::class, /** @scrutinizer ignore-type */ $message); throw $exception; } if ($httpResponse->getHttpStatus() !== 200) { - $message = 'Solr ping failed with unexpected response code: ' . $httpResponse->getHttpStatus(); + $message = 'Meilisearch ping failed with unexpected response code: ' . $httpResponse->getHttpStatus(); /** @var $exception \WapplerSystems\Meilisearch\PingFailedException */ $exception = GeneralUtility::makeInstance(PingFailedException::class, /** @scrutinizer ignore-type */ $message); throw $exception; @@ -413,7 +413,7 @@ abstract class AbstractSolrService $request = new Request(); $path = parse_url($url, PHP_URL_PATH); $endpoint = $this->getPrimaryEndpoint(); - $api = $request->getApi() === Request::API_V1 ? 'solr' : 'api'; + $api = $request->getApi() === Request::API_V1 ? 'meilisearch' : 'api'; $coreBasePath = $endpoint->getPath() . '/' . $api . '/' . $endpoint->getCore() . '/'; $handler = $this->buildRelativePath($coreBasePath, $path); diff --git a/Classes/System/Solr/Service/SolrAdminService.php b/Classes/System/Meilisearch/Service/MeilisearchAdminService.php similarity index 83% rename from Classes/System/Solr/Service/SolrAdminService.php rename to Classes/System/Meilisearch/Service/MeilisearchAdminService.php index 22568bd..980aa2d 100644 --- a/Classes/System/Solr/Service/SolrAdminService.php +++ b/Classes/System/Meilisearch/Service/MeilisearchAdminService.php @@ -1,5 +1,5 @@ solrconfigName)) { - $solrconfigXmlUrl = $this->_constructUrl(self::FILE_SERVLET, ['file' => 'solrconfig.xml']); - $response = $this->_sendRawGet($solrconfigXmlUrl); - $solrconfigXml = simplexml_load_string($response->getRawResponse()); - if ($solrconfigXml === false) { - throw new \InvalidArgumentException('No valid xml response from schema file: ' . $solrconfigXmlUrl); + if (is_null($this->meilisearchconfigName)) { + $meilisearchconfigXmlUrl = $this->_constructUrl(self::FILE_SERVLET, ['file' => 'meilisearchconfig.xml']); + $response = $this->_sendRawGet($meilisearchconfigXmlUrl); + $meilisearchconfigXml = simplexml_load_string($response->getRawResponse()); + if ($meilisearchconfigXml === false) { + throw new \InvalidArgumentException('No valid xml response from schema file: ' . $meilisearchconfigXmlUrl); } - $this->solrconfigName = (string)$solrconfigXml->attributes()->name; + $this->meilisearchconfigName = (string)$meilisearchconfigXml->attributes()->name; } - return $this->solrconfigName; + return $this->meilisearchconfigName; } /** - * Gets the Solr server's version number. + * Gets the Meilisearch server's version number. * - * @return string Solr version number + * @return string Meilisearch version number */ - public function getSolrServerVersion() + public function getMeilisearchServerVersion() { $systemInformation = $this->getSystemInformation(); - // don't know why $systemInformation->lucene->solr-spec-version won't work + // don't know why $systemInformation->lucene->meilisearch-spec-version won't work $luceneInformation = (array)$systemInformation->lucene; - return $luceneInformation['solr-spec-version']; + return $luceneInformation['meilisearch-spec-version']; } /** diff --git a/Classes/System/Solr/Service/SolrReadService.php b/Classes/System/Meilisearch/Service/MeilisearchReadService.php similarity index 65% rename from Classes/System/Solr/Service/SolrReadService.php rename to Classes/System/Meilisearch/Service/MeilisearchReadService.php index a9a2c51..e95d91c 100644 --- a/Classes/System/Solr/Service/SolrReadService.php +++ b/Classes/System/Meilisearch/Service/MeilisearchReadService.php @@ -1,5 +1,5 @@ getCode(); $message = $exception->getStatusMessage(); - $solrRespone = new ResponseAdapter($exception->getBody()); + $meilisearchRespone = new ResponseAdapter($exception->getBody()); if ($status === 0 || $status === 502) { - $e = new SolrUnavailableException('Solr Server not available: ' . $message, 1505989391); - $e->setSolrResponse($solrRespone); + $e = new MeilisearchUnavailableException('Meilisearch Server not available: ' . $message, 1505989391); + $e->setMeilisearchResponse($meilisearchRespone); throw $e; } if ($status === 500) { - $e = new SolrInternalServerErrorException('Internal Server error during search: ' . $message, 1505989897); - $e->setSolrResponse($solrRespone); + $e = new MeilisearchInternalServerErrorException('Internal Server error during search: ' . $message, 1505989897); + $e->setMeilisearchResponse($meilisearchRespone); throw $e; } - $e = new SolrCommunicationException('Invalid query. Solr returned an error: ' . $status . ' ' . $message, 1293109870); - $e->setSolrResponse($solrRespone); + $e = new MeilisearchCommunicationException('Invalid query. Meilisearch returned an error: ' . $status . ' ' . $message, 1293109870); + $e->setMeilisearchResponse($meilisearchRespone); throw $e; } diff --git a/Classes/System/Solr/Service/SolrWriteService.php b/Classes/System/Meilisearch/Service/MeilisearchWriteService.php similarity index 87% rename from Classes/System/Solr/Service/SolrWriteService.php rename to Classes/System/Meilisearch/Service/MeilisearchWriteService.php index 69d339b..060b6f7 100644 --- a/Classes/System/Solr/Service/SolrWriteService.php +++ b/Classes/System/Meilisearch/Service/MeilisearchWriteService.php @@ -1,5 +1,5 @@ getRequestBuilder()->build($query)->getParams(); $this->logger->log( - SolrLogManager::ERROR, - 'Extracting text and meta data through Solr Cell over HTTP POST', + MeilisearchLogManager::ERROR, + 'Extracting text and meta data through Meilisearch Cell over HTTP POST', [ 'query' => (array)$query, 'parameters' => $param, @@ -93,9 +93,9 @@ class SolrWriteService extends AbstractSolrService } /** - * Add an array of Solr Documents to the index all at once + * Add an array of Meilisearch Documents to the index all at once * - * @param array $documents Should be an array of \WapplerSystems\Meilisearch\System\Solr\Document\Document instances + * @param array $documents Should be an array of \WapplerSystems\Meilisearch\System\Meilisearch\Document\Document instances * @return ResponseAdapter */ public function addDocuments($documents) diff --git a/Classes/System/Mvc/Backend/Component/Exception/InvalidViewObjectNameException.php b/Classes/System/Mvc/Backend/Component/Exception/InvalidViewObjectNameException.php index 334cf39..c329db5 100644 --- a/Classes/System/Mvc/Backend/Component/Exception/InvalidViewObjectNameException.php +++ b/Classes/System/Mvc/Backend/Component/Exception/InvalidViewObjectNameException.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\System\Mvc\Backend\Component\Exception; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/System/Mvc/Backend/ModuleData.php b/Classes/System/Mvc/Backend/ModuleData.php index d0bc357..b58469d 100644 --- a/Classes/System/Mvc/Backend/ModuleData.php +++ b/Classes/System/Mvc/Backend/ModuleData.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\System\Mvc\Backend; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/System/Mvc/Backend/Service/ModuleDataStorageService.php b/Classes/System/Mvc/Backend/Service/ModuleDataStorageService.php index eadd81b..2f177c5 100644 --- a/Classes/System/Mvc/Backend/Service/ModuleDataStorageService.php +++ b/Classes/System/Mvc/Backend/Service/ModuleDataStorageService.php @@ -81,8 +81,8 @@ class ModuleDataStorageService implements SingletonInterface $serializedModuleData = ''; return; } - if (false !== strpos($serializedModuleData, 'ApacheSolrForTypo3\\Solr\\Domain\\Model\\ModuleData') - || false !== strpos($serializedModuleData, 'Tx_Solr_Site')) { + if (false !== strpos($serializedModuleData, 'WapplerSystems\\Meilisearch\\Domain\\Model\\ModuleData') + || false !== strpos($serializedModuleData, 'Tx_Meilisearch_Site')) { $serializedModuleData = ''; } } diff --git a/Classes/System/Records/AbstractRepository.php b/Classes/System/Records/AbstractRepository.php index 46c078d..c114caf 100644 --- a/Classes/System/Records/AbstractRepository.php +++ b/Classes/System/Records/AbstractRepository.php @@ -31,7 +31,7 @@ use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * Repository class to encapsulate the database access for records used in solr. + * Repository class to encapsulate the database access for records used in meilisearch. * * @author Timo Hund */ diff --git a/Classes/System/Records/Pages/PagesRepository.php b/Classes/System/Records/Pages/PagesRepository.php index b4bc496..9a5400d 100644 --- a/Classes/System/Records/Pages/PagesRepository.php +++ b/Classes/System/Records/Pages/PagesRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\System\Records\Pages; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * * All rights reserved * diff --git a/Classes/System/Records/SystemLanguage/SystemLanguageRepository.php b/Classes/System/Records/SystemLanguage/SystemLanguageRepository.php index 34012be..fe90068 100644 --- a/Classes/System/Records/SystemLanguage/SystemLanguageRepository.php +++ b/Classes/System/Records/SystemLanguage/SystemLanguageRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\System\Records\SystemLanguage; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * * All rights reserved * @@ -33,7 +33,7 @@ use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; /** - * SystemLanguageRepository to encapsulate the database access for records used in solr. + * SystemLanguageRepository to encapsulate the database access for records used in meilisearch. * */ class SystemLanguageRepository extends AbstractRepository implements SingletonInterface diff --git a/Classes/System/Records/SystemTemplate/SystemTemplateRepository.php b/Classes/System/Records/SystemTemplate/SystemTemplateRepository.php index 25091c9..ccae268 100644 --- a/Classes/System/Records/SystemTemplate/SystemTemplateRepository.php +++ b/Classes/System/Records/SystemTemplate/SystemTemplateRepository.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\System\Records\SystemTemplate; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * * All rights reserved * @@ -28,7 +28,7 @@ namespace WapplerSystems\Meilisearch\System\Records\SystemTemplate; use WapplerSystems\Meilisearch\System\Records\AbstractRepository; /** - * SystemTemplateRepository to encapsulate the database access for records used in solr. + * SystemTemplateRepository to encapsulate the database access for records used in meilisearch. * */ class SystemTemplateRepository extends AbstractRepository diff --git a/Classes/System/Service/ConfigurationService.php b/Classes/System/Service/ConfigurationService.php index f31d854..e2f8a3e 100644 --- a/Classes/System/Service/ConfigurationService.php +++ b/Classes/System/Service/ConfigurationService.php @@ -60,14 +60,14 @@ class ConfigurationService } /** - * Override the given solrConfiguration with flex form configuration. + * Override the given meilisearchConfiguration with flex form configuration. * * @param string $flexFormData The raw data from database. - * @param TypoScriptConfiguration $solrTypoScriptConfiguration + * @param TypoScriptConfiguration $meilisearchTypoScriptConfiguration * * @return void */ - public function overrideConfigurationWithFlexFormSettings($flexFormData, TypoScriptConfiguration $solrTypoScriptConfiguration) + public function overrideConfigurationWithFlexFormSettings($flexFormData, TypoScriptConfiguration $meilisearchTypoScriptConfiguration) { if (empty($flexFormData)) { return; @@ -77,7 +77,7 @@ class ConfigurationService $flexFormConfiguration = $this->overrideFilter($flexFormConfiguration); $flexFormConfiguration = $this->typoScriptService->convertPlainArrayToTypoScriptArray($flexFormConfiguration); - $solrTypoScriptConfiguration->mergeSolrConfiguration($flexFormConfiguration, true, false); + $meilisearchTypoScriptConfiguration->mergeMeilisearchConfiguration($flexFormConfiguration, true, false); } /** diff --git a/Classes/System/Session/FrontendUserSession.php b/Classes/System/Session/FrontendUserSession.php index bb500d6..03c0df5 100644 --- a/Classes/System/Session/FrontendUserSession.php +++ b/Classes/System/Session/FrontendUserSession.php @@ -5,7 +5,7 @@ namespace WapplerSystems\Meilisearch\System\Session; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * * All rights reserved * diff --git a/Classes/System/Solr/Node.php b/Classes/System/Solr/Node.php deleted file mode 100644 index 6c89f8c..0000000 --- a/Classes/System/Solr/Node.php +++ /dev/null @@ -1,166 +0,0 @@ - - * @copyright Copyright (c) 2009-2020 Timo Hund - * - * @deprecated Class will removed with Ext:solr 12.x. Use class \Solarium\Core\Client\Endpoint instead. - */ -class Node extends Endpoint -{ - /** - * Node constructor. - * @param string $scheme - * @param string $host - * @param int $port - * @param string $path - * @param ?string $username - * @param ?string $password - */ - public function __construct( - string $scheme = 'http', - string $host = 'localhost', - int $port = 8983, - string $path = '/solr/core_en/', - ?string $username = null, - ?string $password = null - ) { - $path = (string)$path; - $elements = explode('/', trim($path, '/')); - $coreName = (string)array_pop($elements); - // Remove API version - array_pop($elements); - - // The path should always have the same format! - $path = trim(implode('/', $elements), '/'); - - $options = [ - 'scheme' => $scheme, - 'host' => $host, - 'port' => $port, - 'path' => '/' . $path, - 'collection' => null, - 'core' => $coreName, - 'leader' => false, - ]; - - parent::__construct($options); - $this->setAuthentication($username, $password); - } - - /** - * @param array $configuration - * @return Node - */ - public static function fromArray(array $configuration): Node - { - static::checkIfRequiredKeyIsSet($configuration, 'scheme'); - static::checkIfRequiredKeyIsSet($configuration, 'host'); - static::checkIfRequiredKeyIsSet($configuration, 'port'); - static::checkIfRequiredKeyIsSet($configuration, 'path'); - - $scheme = $configuration['scheme']; - $host = $configuration['host']; - $port = $configuration['port']; - $path = $configuration['path']; - - $username = $configuration['username'] ?? ''; - $password = $configuration['password'] ?? ''; - return new Node($scheme, $host, $port, $path, $username, $password); - } - - /** - * Checks if the required configuration option is set. - * - * @param array $configuration - * @param string $name - * @throws |UnexpectedValueException - */ - protected static function checkIfRequiredKeyIsSet(array $configuration, string $name) - { - if (empty($configuration[$name])) { - throw new \UnexpectedValueException('Required solr connection property ' . $name. ' is missing.'); - } - } - - /** - * @return string - */ - public function getUsername(): string - { - return (string)$this->getOption('username'); - } - - /** - * @return string - */ - public function getPassword(): string - { - return (string)$this->getOption('password'); - } - - /** - * Returns the path including api path. - * - * @return string - */ - public function getCoreBasePath(): string - { - $pathWithoutLeadingAndTrailingSlashes = trim(trim($this->getPath()), "/"); - $pathWithoutLastSegment = substr($pathWithoutLeadingAndTrailingSlashes, 0, strrpos($pathWithoutLeadingAndTrailingSlashes, "/")); - return ($pathWithoutLastSegment === '') ? '/' : '/' . $pathWithoutLastSegment . '/'; - } - - /** - * Returns the core name from the configured path. - * - * @return string - * @deprecated Will be remove with Ext:solr 12.x. Use method getCore() instead. - */ - public function getCoreName(): string - { - return $this->getCore(); - } - - /** - * @return array - */ - public function getSolariumClientOptions(): array - { - return [ - 'host' => $this->getHost(), - 'port' => $this->getPort(), - 'scheme' => $this->getScheme(), - 'path' => $this->getPath(), - 'core' => $this->getCore() - ]; - } - - /** - * @return string - * @deprecated Will be removed with Ext:solr 12.x. Use methods getCoreBaseUri() for API version 1 instead - */ - public function __toString(): string - { - return $this->getCoreBaseUri(); - } -} diff --git a/Classes/System/UserFunctions/FlexFormUserFunctions.php b/Classes/System/UserFunctions/FlexFormUserFunctions.php index d7fe610..1cc1cdc 100644 --- a/Classes/System/UserFunctions/FlexFormUserFunctions.php +++ b/Classes/System/UserFunctions/FlexFormUserFunctions.php @@ -60,18 +60,18 @@ class FlexFormUserFunctions return; } - $newItems = $this->getParsedSolrFieldsFromSchema($configuredFacets, $pageRecord); + $newItems = $this->getParsedMeilisearchFieldsFromSchema($configuredFacets, $pageRecord); $parentInformation['items'] = $newItems; } /** - * This method parses the solr schema fields into the required format for the backend flexform. + * This method parses the meilisearch schema fields into the required format for the backend flexform. * * @param array $configuredFacets * @param array $pageRecord * @return mixed */ - protected function getParsedSolrFieldsFromSchema($configuredFacets, $pageRecord) + protected function getParsedMeilisearchFieldsFromSchema($configuredFacets, $pageRecord) { $newItems = []; @@ -96,7 +96,7 @@ class FlexFormUserFunctions } $newItems[$value] = [$label, $value]; - }, $this->getFieldNamesFromSolrMetaDataForPage($pageRecord)); + }, $this->getFieldNamesFromMeilisearchMetaDataForPage($pageRecord)); ksort($newItems, SORT_NATURAL); return $newItems; @@ -126,11 +126,11 @@ class FlexFormUserFunctions } /** - * Get solr connection. + * Get meilisearch connection. * * @param array $pageRecord * - * @return \WapplerSystems\Meilisearch\System\Solr\SolrConnection + * @return \WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection */ protected function getConnection(array $pageRecord) { @@ -138,12 +138,12 @@ class FlexFormUserFunctions } /** - * Retrieves all fieldnames that occure in the solr schema for one page. + * Retrieves all fieldnames that occure in the meilisearch schema for one page. * * @param array $pageRecord * @return array */ - protected function getFieldNamesFromSolrMetaDataForPage(array $pageRecord) + protected function getFieldNamesFromMeilisearchMetaDataForPage(array $pageRecord) { return array_keys((array)$this->getConnection($pageRecord)->getAdminService()->getFieldsMetaData()); } @@ -184,7 +184,7 @@ class FlexFormUserFunctions */ protected function getConfigurationFromPageId($pid) { - $typoScriptConfiguration = $this->frontendEnvironment->getSolrConfigurationFromPageId($pid); + $typoScriptConfiguration = $this->frontendEnvironment->getMeilisearchConfigurationFromPageId($pid); return $typoScriptConfiguration; } diff --git a/Classes/System/Util/SiteUtility.php b/Classes/System/Util/SiteUtility.php index 3df4327..0ac4cf0 100644 --- a/Classes/System/Util/SiteUtility.php +++ b/Classes/System/Util/SiteUtility.php @@ -69,8 +69,8 @@ class SiteUtility * * In addition every property can be defined for the ```read``` and ```write``` scope. * - * The convention for property keys is "solr_{propertyName}_{scope}". With the configuration "solr_host_read" you define the host - * for the solr read connection. + * The convention for property keys is "meilisearch_{propertyName}_{scope}". With the configuration "meilisearch_host_read" you define the host + * for the meilisearch read connection. * * @param Site $typo3Site * @param string $property @@ -104,11 +104,11 @@ class SiteUtility $scope = 'read'; } - // convention key solr_$property_$scope - $keyToCheck = 'solr_' . $property . '_' . $scope; + // convention key meilisearch_$property_$scope + $keyToCheck = 'meilisearch_' . $property . '_' . $scope; - // convention fallback key solr_$property_read - $fallbackKey = 'solr_' . $property . '_read'; + // convention fallback key meilisearch_$property_read + $fallbackKey = 'meilisearch_' . $property . '_read'; // try to find language specific setting if found return it $languageSpecificConfiguration = $typo3Site->getLanguageById($languageId)->toArray(); @@ -133,13 +133,13 @@ class SiteUtility protected static function writeConnectionIsEnabled(Site $typo3Site, int $languageId): bool { $languageSpecificConfiguration = $typo3Site->getLanguageById($languageId)->toArray(); - $value = self::getValueOrFallback($languageSpecificConfiguration, 'solr_use_write_connection', 'solr_use_write_connection'); + $value = self::getValueOrFallback($languageSpecificConfiguration, 'meilisearch_use_write_connection', 'meilisearch_use_write_connection'); if ($value !== null) { return $value; } $siteBaseConfiguration = $typo3Site->getConfiguration(); - $value = self::getValueOrFallback($siteBaseConfiguration, 'solr_use_write_connection', 'solr_use_write_connection'); + $value = self::getValueOrFallback($siteBaseConfiguration, 'meilisearch_use_write_connection', 'meilisearch_use_write_connection'); if ($value !== null) { return $value; } diff --git a/Classes/System/Validator/Path.php b/Classes/System/Validator/Path.php index 53a13f9..df497a2 100644 --- a/Classes/System/Validator/Path.php +++ b/Classes/System/Validator/Path.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\System\Validator; ***************************************************************/ /** - * Class Path is used for Solr Path related methods + * Class Path is used for Meilisearch Path related methods * * @author Thomas Hohn */ @@ -33,12 +33,12 @@ class Path { /** - * Validate that a path is a valid Solr Path + * Validate that a path is a valid Meilisearch Path * * @param string $path * @return bool */ - public function isValidSolrPath($path) + public function isValidMeilisearchPath($path) { $path = trim($path); diff --git a/Classes/Task/AbstractMeilisearchTask.php b/Classes/Task/AbstractMeilisearchTask.php index c5c6ee8..2bbc28a 100644 --- a/Classes/Task/AbstractMeilisearchTask.php +++ b/Classes/Task/AbstractMeilisearchTask.php @@ -26,12 +26,12 @@ namespace WapplerSystems\Meilisearch\Task; use WapplerSystems\Meilisearch\Domain\Site\SiteRepository; use WapplerSystems\Meilisearch\Domain\Site\Site; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Scheduler\Task\AbstractTask; /** - * Abstract scheduler task for solr scheduler tasks, contains the logic to + * Abstract scheduler task for meilisearch scheduler tasks, contains the logic to * retrieve the site, avoids serialization of site, when scheduler task is saved. */ abstract class AbstractMeilisearchTask extends AbstractTask { @@ -80,8 +80,8 @@ abstract class AbstractMeilisearchTask extends AbstractTask { $siteRepository = GeneralUtility::makeInstance(SiteRepository::class); $this->site = $siteRepository->getSiteByRootPageId($this->rootPageId); } catch (\InvalidArgumentException $e) { - $logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); - $logger->log(SolrLogManager::ERROR, 'Scheduler task tried to get invalid site'); + $logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $logger->log(MeilisearchLogManager::ERROR, 'Scheduler task tried to get invalid site'); } return $this->site; diff --git a/Classes/Task/IndexQueueWorkerTask.php b/Classes/Task/IndexQueueWorkerTask.php index 1e6afee..b46861a 100644 --- a/Classes/Task/IndexQueueWorkerTask.php +++ b/Classes/Task/IndexQueueWorkerTask.php @@ -50,7 +50,7 @@ class IndexQueueWorkerTask extends AbstractMeilisearchTask implements ProgressPr protected $forcedWebRoot = ''; /** - * Works through the indexing queue and indexes the queued items into Solr. + * Works through the indexing queue and indexes the queued items into Meilisearch. * * @return bool Returns TRUE on success, FALSE if no items were indexed or none were found. */ @@ -60,7 +60,7 @@ class IndexQueueWorkerTask extends AbstractMeilisearchTask implements ProgressPr // Wrapped the CliEnvironment to avoid defining TYPO3_PATH_WEB since this // should only be done in the case when running it from outside TYPO3 BE - // @see #921 and #934 on https://github.com/TYPO3-Solr + // @see #921 and #934 on https://github.com/TYPO3-Meilisearch if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_CLI) { $cliEnvironment = GeneralUtility::makeInstance(CliEnvironment::class); $cliEnvironment->backup(); diff --git a/Classes/Task/ReIndexTask.php b/Classes/Task/ReIndexTask.php index 4ba9465..701a49d 100644 --- a/Classes/Task/ReIndexTask.php +++ b/Classes/Task/ReIndexTask.php @@ -32,7 +32,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility; /** * Scheduler task to empty the indexes of a site and re-initialize the - * Solr Index Queue thus making the indexer re-index the site. + * Meilisearch Index Queue thus making the indexer re-index the site. * * @author Christoph Moeller */ @@ -47,7 +47,7 @@ class ReIndexTask extends AbstractMeilisearchTask protected $indexingConfigurationsToReIndex = []; /** - * Purges/commits all Solr indexes, initializes the Index Queue + * Purges/commits all Meilisearch indexes, initializes the Index Queue * and returns TRUE if the execution was successful * * @return bool Returns TRUE on success, FALSE on failure. @@ -74,26 +74,26 @@ class ReIndexTask extends AbstractMeilisearchTask protected function cleanUpIndex() { $cleanUpResult = true; - $solrConfiguration = $this->getSite()->getSolrConfiguration(); - $solrServers = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionsBySite($this->getSite()); + $meilisearchConfiguration = $this->getSite()->getMeilisearchConfiguration(); + $meilisearchServers = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionsBySite($this->getSite()); $typesToCleanUp = []; - $enableCommitsSetting = $solrConfiguration->getEnableCommits(); + $enableCommitsSetting = $meilisearchConfiguration->getEnableCommits(); foreach ($this->indexingConfigurationsToReIndex as $indexingConfigurationName) { - $type = $solrConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); + $type = $meilisearchConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); $typesToCleanUp[] = $type; } - foreach ($solrServers as $solrServer) { + foreach ($meilisearchServers as $meilisearchServer) { $deleteQuery = 'type:(' . implode(' OR ', $typesToCleanUp) . ')' . ' AND siteHash:' . $this->getSite()->getSiteHash(); - $solrServer->getWriteService()->deleteByQuery($deleteQuery); + $meilisearchServer->getWriteService()->deleteByQuery($deleteQuery); if (!$enableCommitsSetting) { # Do not commit continue; } - $response = $solrServer->getWriteService()->commit(false, false, false); + $response = $meilisearchServer->getWriteService()->commit(false, false, false); if ($response->getHttpStatus() != 200) { $cleanUpResult = false; break; diff --git a/Classes/Task/ReIndexTaskAdditionalFieldProvider.php b/Classes/Task/ReIndexTaskAdditionalFieldProvider.php index 8a4fc52..ba60b6c 100644 --- a/Classes/Task/ReIndexTaskAdditionalFieldProvider.php +++ b/Classes/Task/ReIndexTaskAdditionalFieldProvider.php @@ -38,7 +38,7 @@ use TYPO3\CMS\Scheduler\Task\AbstractTask; use TYPO3\CMS\Scheduler\Task\Enumeration\Action; /** - * Adds an additional field to specify the Solr server to initialize the index queue for + * Adds an additional field to specify the Meilisearch server to initialize the index queue for * * @author Christoph Moeller */ @@ -115,7 +115,7 @@ class ReIndexTaskAdditionalFieldProvider implements AdditionalFieldProviderInter } /** - * Used to define fields to provide the Solr server address when adding + * Used to define fields to provide the Meilisearch server address when adding * or editing a task. * * @param array $taskInfo reference to the array containing the info used in the add/edit form @@ -160,7 +160,7 @@ class ReIndexTaskAdditionalFieldProvider implements AdditionalFieldProviderInter protected function getIndexingConfigurationSelector() { $selectorMarkup = 'Please select a site first.'; - $this->getPageRenderer()->addCssFile('../typo3conf/ext/solr/Resources/Css/Backend/indexingconfigurationselectorfield.css'); + $this->getPageRenderer()->addCssFile('../typo3conf/ext/meilisearch/Resources/Css/Backend/indexingconfigurationselectorfield.css'); if (is_null($this->site)) { return $selectorMarkup; diff --git a/Classes/Typo3PageContentExtractor.php b/Classes/Typo3PageContentExtractor.php index ea1731e..cc61650 100644 --- a/Classes/Typo3PageContentExtractor.php +++ b/Classes/Typo3PageContentExtractor.php @@ -24,7 +24,7 @@ namespace WapplerSystems\Meilisearch; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -36,7 +36,7 @@ class Typo3PageContentExtractor extends HtmlContentExtractor { /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -66,8 +66,8 @@ class Typo3PageContentExtractor extends HtmlContentExtractor $indexableContent = $this->excludeContentByClass($indexableContent); if (empty($indexableContent) && $this->getConfiguration()->getLoggingIndexingMissingTypo3SearchMarkers()) { - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); - $this->logger->log(SolrLogManager::WARNING, 'No TYPO3SEARCH markers found.'); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger->log(MeilisearchLogManager::WARNING, 'No TYPO3SEARCH markers found.'); } return $indexableContent; @@ -121,7 +121,7 @@ class Typo3PageContentExtractor extends HtmlContentExtractor /** * Returns the cleaned indexable content from the page's HTML markup. * - * The content is cleaned from HTML tags and control chars Solr could + * The content is cleaned from HTML tags and control chars Meilisearch could * stumble on. * * @return string Indexable, cleaned content ready for indexing. diff --git a/Classes/Typo3PageIndexer.php b/Classes/Typo3PageIndexer.php index 5718aa8..c1c6dc6 100644 --- a/Classes/Typo3PageIndexer.php +++ b/Classes/Typo3PageIndexer.php @@ -25,14 +25,14 @@ namespace WapplerSystems\Meilisearch; ***************************************************************/ use WapplerSystems\Meilisearch\Access\Rootline; -use WapplerSystems\Meilisearch\Domain\Search\ApacheSolrDocument\Builder; +use WapplerSystems\Meilisearch\Domain\Search\ApacheMeilisearchDocument\Builder; use WapplerSystems\Meilisearch\FieldProcessor\Service; use WapplerSystems\Meilisearch\IndexQueue\FrontendHelper\PageFieldMappingIndexer; use WapplerSystems\Meilisearch\IndexQueue\Item; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; -use WapplerSystems\Meilisearch\System\Logging\SolrLogManager; -use WapplerSystems\Meilisearch\System\Solr\Document\Document; -use WapplerSystems\Meilisearch\System\Solr\SolrConnection; +use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager; +use WapplerSystems\Meilisearch\System\Meilisearch\Document\Document; +use WapplerSystems\Meilisearch\System\Meilisearch\MeilisearchConnection; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; @@ -47,17 +47,17 @@ class Typo3PageIndexer { /** - * ID of the current page's Solr document. + * ID of the current page's Meilisearch document. * * @var string */ - protected static $pageSolrDocumentId = ''; + protected static $pageMeilisearchDocumentId = ''; /** - * The Solr document generated for the current page. + * The Meilisearch document generated for the current page. * * @var Document */ - protected static $pageSolrDocument = null; + protected static $pageMeilisearchDocument = null; /** * The mount point parameter used in the Frontend controller. * @@ -65,11 +65,11 @@ class Typo3PageIndexer */ protected $mountPointParameter; /** - * Solr server connection. + * Meilisearch server connection. * - * @var SolrConnection + * @var MeilisearchConnection */ - protected $solrConnection = null; + protected $meilisearchConnection = null; /** * Frontend page object (TSFE). * @@ -95,11 +95,11 @@ class Typo3PageIndexer */ protected $pageAccessRootline = null; /** - * Documents that have been sent to Solr + * Documents that have been sent to Meilisearch * * @var array */ - protected $documentsSentToSolr = []; + protected $documentsSentToMeilisearch = []; /** * @var TypoScriptConfiguration @@ -112,7 +112,7 @@ class Typo3PageIndexer protected $indexQueueItem; /** - * @var \WapplerSystems\Meilisearch\System\Logging\SolrLogManager + * @var \WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager */ protected $logger = null; @@ -123,24 +123,24 @@ class Typo3PageIndexer */ public function __construct(TypoScriptFrontendController $page) { - $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); + $this->logger = GeneralUtility::makeInstance(MeilisearchLogManager::class, /** @scrutinizer ignore-type */ __CLASS__); $this->page = $page; $this->pageUrl = GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'); - $this->configuration = Util::getSolrConfiguration(); + $this->configuration = Util::getMeilisearchConfiguration(); try { - $this->initializeSolrConnection(); + $this->initializeMeilisearchConnection(); } catch (\Exception $e) { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, $e->getMessage() . ' Error code: ' . $e->getCode() ); // TODO extract to a class "ExceptionLogger" if ($this->configuration->getLoggingExceptions()) { $this->logger->log( - SolrLogManager::ERROR, + MeilisearchLogManager::ERROR, 'Exception while trying to index a page', [ $e->__toString() @@ -161,62 +161,62 @@ class Typo3PageIndexer } /** - * Initializes the Solr server connection. + * Initializes the Meilisearch server connection. * - * @throws \Exception when no Solr connection can be established. + * @throws \Exception when no Meilisearch connection can be established. */ - protected function initializeSolrConnection() + protected function initializeMeilisearchConnection() { - $solr = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionByPageId($this->page->id, Util::getLanguageUid()); + $meilisearch = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionByPageId($this->page->id, Util::getLanguageUid()); // do not continue if no server is available - if (!$solr->getWriteService()->ping()) { + if (!$meilisearch->getWriteService()->ping()) { throw new \Exception( - 'No Solr instance available while trying to index a page.', + 'No Meilisearch instance available while trying to index a page.', 1234790825 ); } - $this->solrConnection = $solr; + $this->meilisearchConnection = $meilisearch; } /** - * Gets the current page's Solr document ID. + * Gets the current page's Meilisearch document ID. * - * @return string|NULL The page's Solr document ID or NULL in case no document was generated yet. + * @return string|NULL The page's Meilisearch document ID or NULL in case no document was generated yet. */ - public static function getPageSolrDocumentId() + public static function getPageMeilisearchDocumentId() { - return self::$pageSolrDocumentId; + return self::$pageMeilisearchDocumentId; } /** - * Gets the Solr document generated for the current page. + * Gets the Meilisearch document generated for the current page. * - * @return Document|NULL The page's Solr document or NULL if it has not been generated yet. + * @return Document|NULL The page's Meilisearch document or NULL if it has not been generated yet. */ - public static function getPageSolrDocument() + public static function getPageMeilisearchDocument() { - return self::$pageSolrDocument; + return self::$pageMeilisearchDocument; } /** - * Allows to provide a Solr server connection other than the one + * Allows to provide a Meilisearch server connection other than the one * initialized by the constructor. * - * @param SolrConnection $solrConnection Solr connection - * @throws \Exception if the Solr server cannot be reached + * @param MeilisearchConnection $meilisearchConnection Meilisearch connection + * @throws \Exception if the Meilisearch server cannot be reached */ - public function setSolrConnection(SolrConnection $solrConnection) + public function setMeilisearchConnection(MeilisearchConnection $meilisearchConnection) { - if (!$solrConnection->getWriteService()->ping()) { + if (!$meilisearchConnection->getWriteService()->ping()) { throw new \Exception( - 'Could not connect to Solr server.', + 'Could not connect to Meilisearch server.', 1323946472 ); } - $this->solrConnection = $solrConnection; + $this->meilisearchConnection = $meilisearchConnection; } /** @@ -230,9 +230,9 @@ class Typo3PageIndexer $pageIndexed = false; $documents = []; // this will become useful as soon as when starting to index individual records instead of whole pages - if (is_null($this->solrConnection)) { + if (is_null($this->meilisearchConnection)) { // intended early return as it doesn't make sense to continue - // and waste processing time if the solr server isn't available + // and waste processing time if the meilisearch server isn't available // anyways // FIXME use an exception return $pageIndexed; @@ -243,13 +243,13 @@ class Typo3PageIndexer $this->applyIndexPagePostProcessors($pageDocument); - self::$pageSolrDocument = $pageDocument; + self::$pageMeilisearchDocument = $pageDocument; $documents[] = $pageDocument; $documents = $this->getAdditionalDocuments($pageDocument, $documents); $this->processDocuments($documents); - $pageIndexed = $this->addDocumentsToSolrIndex($documents); - $this->documentsSentToSolr = $documents; + $pageIndexed = $this->addDocumentsToMeilisearchIndex($documents); + $this->documentsSentToMeilisearch = $documents; return $pageIndexed; } @@ -261,11 +261,11 @@ class Typo3PageIndexer */ protected function applyIndexPagePostProcessors($pageDocument) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPagePostProcessPageDocument'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPagePostProcessPageDocument'])) { return; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPagePostProcessPageDocument'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPagePostProcessPageDocument'] as $classReference) { $postProcessor = GeneralUtility::makeInstance($classReference); if (!$postProcessor instanceof PageDocumentPostProcessor) { throw new \UnexpectedValueException(get_class($pageDocument) . ' must implement interface ' . PageDocumentPostProcessor::class, 1397739154); @@ -276,7 +276,7 @@ class Typo3PageIndexer } /** - * Builds the Solr document for the current page. + * Builds the Meilisearch document for the current page. * * @return Document A document representing the page */ @@ -285,7 +285,7 @@ class Typo3PageIndexer $documentBuilder = GeneralUtility::makeInstance(Builder::class); $document = $documentBuilder->fromPage($this->page, $this->pageUrl, $this->pageAccessRootline, (string)$this->mountPointParameter); - self::$pageSolrDocumentId = $document['id']; + self::$pageMeilisearchDocumentId = $document['id']; return $document; } @@ -321,16 +321,16 @@ class Typo3PageIndexer * created by this indexer. * * @param Document $pageDocument The page document created by this indexer. - * @return Document An Apache Solr document representing the currently indexed page + * @return Document An Meilisearch document representing the currently indexed page */ protected function substitutePageDocument(Document $pageDocument) { - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPageSubstitutePageDocument'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPageSubstitutePageDocument'])) { return $pageDocument; } $indexConfigurationName = $this->getIndexConfigurationNameForCurrentPage(); - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPageSubstitutePageDocument'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPageSubstitutePageDocument'] as $classReference) { $substituteIndexer = GeneralUtility::makeInstance($classReference); if (!$substituteIndexer instanceof SubstitutePageIndexer) { @@ -375,11 +375,11 @@ class Typo3PageIndexer { $documents = $existingDocuments; - if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPageAddDocuments'])) { + if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPageAddDocuments'])) { return $documents; } - foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['Indexer']['indexPageAddDocuments'] as $classReference) { + foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['meilisearch']['Indexer']['indexPageAddDocuments'] as $classReference) { $additionalIndexer = GeneralUtility::makeInstance($classReference); if (!$additionalIndexer instanceof AdditionalPageIndexer) { @@ -412,12 +412,12 @@ class Typo3PageIndexer } /** - * Adds the collected documents to the Solr index. + * Adds the collected documents to the Meilisearch index. * * @param array $documents An array of Document objects. * @return bool TRUE if documents were added successfully, FALSE otherwise */ - protected function addDocumentsToSolrIndex(array $documents) + protected function addDocumentsToMeilisearchIndex(array $documents) { $documentsAdded = false; @@ -426,23 +426,23 @@ class Typo3PageIndexer } try { - $this->logger->log(SolrLogManager::INFO, 'Adding ' . count($documents) . ' documents.', $documents); + $this->logger->log(MeilisearchLogManager::INFO, 'Adding ' . count($documents) . ' documents.', $documents); // chunk adds by 20 $documentChunks = array_chunk($documents, 20); foreach ($documentChunks as $documentChunk) { - $response = $this->solrConnection->getWriteService()->addDocuments($documentChunk); + $response = $this->meilisearchConnection->getWriteService()->addDocuments($documentChunk); if ($response->getHttpStatus() != 200) { - throw new \RuntimeException('Solr Request failed.', 1331834983); + throw new \RuntimeException('Meilisearch Request failed.', 1331834983); } } $documentsAdded = true; } catch (\Exception $e) { - $this->logger->log(SolrLogManager::ERROR, $e->getMessage() . ' Error code: ' . $e->getCode()); + $this->logger->log(MeilisearchLogManager::ERROR, $e->getMessage() . ' Error code: ' . $e->getCode()); if ($this->configuration->getLoggingExceptions()) { - $this->logger->log(SolrLogManager::ERROR, 'Exception while adding documents', [$e->__toString()]); + $this->logger->log(MeilisearchLogManager::ERROR, 'Exception while adding documents', [$e->__toString()]); } } @@ -490,12 +490,12 @@ class Typo3PageIndexer } /** - * Gets the documents that have been sent to Solr + * Gets the documents that have been sent to Meilisearch * * @return array An array of Document objects */ - public function getDocumentsSentToSolr() + public function getDocumentsSentToMeilisearch() { - return $this->documentsSentToSolr; + return $this->documentsSentToMeilisearch; } } diff --git a/Classes/Util.php b/Classes/Util.php index 12b7198..00ef335 100644 --- a/Classes/Util.php +++ b/Classes/Util.php @@ -84,7 +84,7 @@ class Util * * @return TypoScriptConfiguration */ - public static function getSolrConfiguration() + public static function getMeilisearchConfiguration() { $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class); return $configurationManager->getTypoScriptConfiguration(); diff --git a/Classes/Utility/ManagedResourcesUtility.php b/Classes/Utility/ManagedResourcesUtility.php index 60d4b09..751adb9 100644 --- a/Classes/Utility/ManagedResourcesUtility.php +++ b/Classes/Utility/ManagedResourcesUtility.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\Utility; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php b/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php index d8895f1..e4ca01f 100644 --- a/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php +++ b/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php @@ -16,19 +16,19 @@ namespace WapplerSystems\Meilisearch\ViewHelpers; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrTagBasedViewHelper; +use WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchTagBasedViewHelper; /** - * Class AbstractSolrFrontendTagBasedViewHelper + * Class AbstractMeilisearchFrontendTagBasedViewHelper * * @author Frans Saris * @author Timo Hund */ -abstract class AbstractSolrFrontendTagBasedViewHelper extends AbstractSolrTagBasedViewHelper +abstract class AbstractMeilisearchFrontendTagBasedViewHelper extends AbstractMeilisearchTagBasedViewHelper { /** - * @var SolrControllerContext + * @var MeilisearchControllerContext */ protected $controllerContext; @@ -49,7 +49,7 @@ abstract class AbstractSolrFrontendTagBasedViewHelper extends AbstractSolrTagBas } /** - * @return SolrControllerContext + * @return MeilisearchControllerContext * @throws \InvalidArgumentException */ protected function getControllerContext() @@ -59,8 +59,8 @@ abstract class AbstractSolrFrontendTagBasedViewHelper extends AbstractSolrTagBas $controllerContext = $this->renderingContext->getControllerContext(); } - if (!$controllerContext instanceof SolrControllerContext) { - throw new \InvalidArgumentException('No valid SolrControllerContext found', 1512998673); + if (!$controllerContext instanceof MeilisearchControllerContext) { + throw new \InvalidArgumentException('No valid MeilisearchControllerContext found', 1512998673); } return $controllerContext; diff --git a/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php b/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php index 63ec181..4a58f34 100644 --- a/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php +++ b/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php @@ -17,20 +17,20 @@ namespace WapplerSystems\Meilisearch\ViewHelpers; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrViewHelper; +use WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; /** - * Class AbstractSolrFrontendViewHelper + * Class AbstractMeilisearchFrontendViewHelper * * @author Frans Saris * @author Timo Hund */ -abstract class AbstractSolrFrontendViewHelper extends AbstractSolrViewHelper +abstract class AbstractMeilisearchFrontendViewHelper extends AbstractMeilisearchViewHelper { /** - * @var SolrControllerContext + * @var MeilisearchControllerContext */ protected $controllerContext; @@ -51,7 +51,7 @@ abstract class AbstractSolrFrontendViewHelper extends AbstractSolrViewHelper } /** - * @return SolrControllerContext + * @return MeilisearchControllerContext * @throws \InvalidArgumentException */ protected function getControllerContext() @@ -61,8 +61,8 @@ abstract class AbstractSolrFrontendViewHelper extends AbstractSolrViewHelper $controllerContext = $this->renderingContext->getControllerContext(); } - if (!$controllerContext instanceof SolrControllerContext) { - throw new \InvalidArgumentException('No valid SolrControllerContext found', 1512998673); + if (!$controllerContext instanceof MeilisearchControllerContext) { + throw new \InvalidArgumentException('No valid MeilisearchControllerContext found', 1512998673); } return $controllerContext; diff --git a/Classes/ViewHelpers/AbstractSolrTagBasedViewHelper.php b/Classes/ViewHelpers/AbstractSolrTagBasedViewHelper.php index 443d920..4f51c1c 100644 --- a/Classes/ViewHelpers/AbstractSolrTagBasedViewHelper.php +++ b/Classes/ViewHelpers/AbstractSolrTagBasedViewHelper.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers; use \TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper; -abstract class AbstractSolrTagBasedViewHelper extends AbstractTagBasedViewHelper +abstract class AbstractMeilisearchTagBasedViewHelper extends AbstractTagBasedViewHelper { /** diff --git a/Classes/ViewHelpers/AbstractSolrViewHelper.php b/Classes/ViewHelpers/AbstractSolrViewHelper.php index 46fd09a..993cb35 100644 --- a/Classes/ViewHelpers/AbstractSolrViewHelper.php +++ b/Classes/ViewHelpers/AbstractSolrViewHelper.php @@ -27,7 +27,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; -abstract class AbstractSolrViewHelper extends AbstractViewHelper +abstract class AbstractMeilisearchViewHelper extends AbstractViewHelper { /** diff --git a/Classes/ViewHelpers/Backend/Button/HelpButtonViewHelper.php b/Classes/ViewHelpers/Backend/Button/HelpButtonViewHelper.php index fcade30..2453ad0 100644 --- a/Classes/ViewHelpers/Backend/Button/HelpButtonViewHelper.php +++ b/Classes/ViewHelpers/Backend/Button/HelpButtonViewHelper.php @@ -24,7 +24,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Backend\Button; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchViewHelper; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\ViewHelperInterface; @@ -34,7 +34,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * View helper to return a help button * */ -class HelpButtonViewHelper extends AbstractSolrViewHelper implements ViewHelperInterface +class HelpButtonViewHelper extends AbstractMeilisearchViewHelper implements ViewHelperInterface { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php b/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php index 05b504a..f4cea05 100644 --- a/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php +++ b/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php @@ -4,7 +4,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Backend\Security; /*************************************************************** * Copyright notice * - * (c) 2010-2017 dkd Internet Service GmbH + * (c) 2010-2017 dkd Internet Service GmbH * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is diff --git a/Classes/ViewHelpers/Debug/DocumentScoreAnalyzerViewHelper.php b/Classes/ViewHelpers/Debug/DocumentScoreAnalyzerViewHelper.php index a9b5961..dba59e8 100644 --- a/Classes/ViewHelpers/Debug/DocumentScoreAnalyzerViewHelper.php +++ b/Classes/ViewHelpers/Debug/DocumentScoreAnalyzerViewHelper.php @@ -17,7 +17,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Debug; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\SearchResult; use WapplerSystems\Meilisearch\Domain\Search\Score\ScoreCalculationService; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; @@ -29,7 +29,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund */ -class DocumentScoreAnalyzerViewHelper extends AbstractSolrFrontendViewHelper +class DocumentScoreAnalyzerViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; @@ -49,7 +49,7 @@ class DocumentScoreAnalyzerViewHelper extends AbstractSolrFrontendViewHelper public function initializeArguments() { parent::initializeArguments(); - $this->registerArgument('document', SearchResult::class, 'The solr document', true); + $this->registerArgument('document', SearchResult::class, 'The meilisearch document', true); } /** diff --git a/Classes/ViewHelpers/Debug/QueryViewHelper.php b/Classes/ViewHelpers/Debug/QueryViewHelper.php index 1b80dc4..0c323f2 100644 --- a/Classes/ViewHelpers/Debug/QueryViewHelper.php +++ b/Classes/ViewHelpers/Debug/QueryViewHelper.php @@ -14,7 +14,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Debug; * The TYPO3 project - inspiring people to share! */ -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; @@ -26,7 +26,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund */ -class QueryViewHelper extends AbstractSolrFrontendViewHelper +class QueryViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Document/HighlightResultViewHelper.php b/Classes/ViewHelpers/Document/HighlightResultViewHelper.php index 4215120..f636eb3 100644 --- a/Classes/ViewHelpers/Document/HighlightResultViewHelper.php +++ b/Classes/ViewHelpers/Document/HighlightResultViewHelper.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Document; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\SearchResult; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -27,7 +27,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund */ -class HighlightResultViewHelper extends AbstractSolrFrontendViewHelper +class HighlightResultViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Document/RelevanceViewHelper.php b/Classes/ViewHelpers/Document/RelevanceViewHelper.php index b7fe034..edc2ac4 100644 --- a/Classes/ViewHelpers/Document/RelevanceViewHelper.php +++ b/Classes/ViewHelpers/Document/RelevanceViewHelper.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Document; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Result\SearchResult; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -26,7 +26,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund */ -class RelevanceViewHelper extends AbstractSolrFrontendViewHelper +class RelevanceViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Facet/Area/GroupViewHelper.php b/Classes/ViewHelpers/Facet/Area/GroupViewHelper.php index 85dc706..c4f7919 100644 --- a/Classes/ViewHelpers/Facet/Area/GroupViewHelper.php +++ b/Classes/ViewHelpers/Facet/Area/GroupViewHelper.php @@ -15,7 +15,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Facet\Area; */ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\FacetCollection; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -25,7 +25,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund * */ -class GroupViewHelper extends AbstractSolrFrontendViewHelper +class GroupViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelFilterViewHelper.php b/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelFilterViewHelper.php index a55bc92..deab62d 100644 --- a/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelFilterViewHelper.php +++ b/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelFilterViewHelper.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Facet\Options\Group\Prefix; ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\OptionBased\OptionCollection; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -34,7 +34,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * * @author Timo Hund */ -class LabelFilterViewHelper extends AbstractSolrFrontendViewHelper +class LabelFilterViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelPrefixesViewHelper.php b/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelPrefixesViewHelper.php index cb84137..c5da55f 100644 --- a/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelPrefixesViewHelper.php +++ b/Classes/ViewHelpers/Facet/Options/Group/Prefix/LabelPrefixesViewHelper.php @@ -25,7 +25,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Facet\Options\Group\Prefix; ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Search\ResultSet\Facets\OptionBased\OptionCollection; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -34,7 +34,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * * @author Timo Hund */ -class LabelPrefixesViewHelper extends AbstractSolrFrontendViewHelper +class LabelPrefixesViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/PageBrowserRangeViewHelper.php b/Classes/ViewHelpers/PageBrowserRangeViewHelper.php index e4cbe6b..cee37d6 100644 --- a/Classes/ViewHelpers/PageBrowserRangeViewHelper.php +++ b/Classes/ViewHelpers/PageBrowserRangeViewHelper.php @@ -23,7 +23,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund */ -class PageBrowserRangeViewHelper extends AbstractSolrFrontendViewHelper +class PageBrowserRangeViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/SearchFormViewHelper.php b/Classes/ViewHelpers/SearchFormViewHelper.php index 4966a6d..30657c8 100644 --- a/Classes/ViewHelpers/SearchFormViewHelper.php +++ b/Classes/ViewHelpers/SearchFormViewHelper.php @@ -27,7 +27,7 @@ use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; * @author Frans Saris * @author Timo Hund */ -class SearchFormViewHelper extends AbstractSolrFrontendTagBasedViewHelper +class SearchFormViewHelper extends AbstractMeilisearchFrontendTagBasedViewHelper { /** diff --git a/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php b/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php index 4a77265..409de0f 100644 --- a/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php +++ b/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php @@ -16,8 +16,8 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Uri; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; use WapplerSystems\Meilisearch\Domain\Search\Uri\SearchUriBuilder; -use WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; @@ -29,7 +29,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * @author Frans Saris * @author Timo Hund */ -abstract class AbstractUriViewHelper extends AbstractSolrFrontendViewHelper +abstract class AbstractUriViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Uri/Result/AddSearchWordListViewHelper.php b/Classes/ViewHelpers/Uri/Result/AddSearchWordListViewHelper.php index 49b2a02..cd85ed7 100644 --- a/Classes/ViewHelpers/Uri/Result/AddSearchWordListViewHelper.php +++ b/Classes/ViewHelpers/Uri/Result/AddSearchWordListViewHelper.php @@ -16,7 +16,7 @@ namespace WapplerSystems\Meilisearch\ViewHelpers\Uri\Result; use WapplerSystems\Meilisearch\Domain\Search\Highlight\SiteHighlighterUrlModifier; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSet; -use WapplerSystems\Meilisearch\ViewHelpers\AbstractSolrFrontendViewHelper; +use WapplerSystems\Meilisearch\ViewHelpers\AbstractMeilisearchFrontendViewHelper; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -26,7 +26,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; * * @author Timo Hund */ -class AddSearchWordListViewHelper extends AbstractSolrFrontendViewHelper +class AddSearchWordListViewHelper extends AbstractMeilisearchFrontendViewHelper { use CompileWithRenderStatic; diff --git a/Classes/ViewHelpers/Widget/Controller/FrequentlySearchedController.php b/Classes/ViewHelpers/Widget/Controller/FrequentlySearchedController.php index ccac98f..d6df970 100644 --- a/Classes/ViewHelpers/Widget/Controller/FrequentlySearchedController.php +++ b/Classes/ViewHelpers/Widget/Controller/FrequentlySearchedController.php @@ -103,7 +103,7 @@ class FrequentlySearchedController extends AbstractWidgetController implements L $frequentSearches[] = [ 'q' => htmlspecialchars_decode($term), 'hits' => $hits, - 'style' => 'font-size: ' . $size . 'px', 'class' => 'tx-solr-frequent-term-' . $size, + 'style' => 'font-size: ' . $size . 'px', 'class' => 'tx-meilisearch-frequent-term-' . $size, 'size' => $size ]; } diff --git a/Classes/ViewHelpers/Widget/Controller/GroupItemPaginateController.php b/Classes/ViewHelpers/Widget/Controller/GroupItemPaginateController.php index df67720..2196fce 100644 --- a/Classes/ViewHelpers/Widget/Controller/GroupItemPaginateController.php +++ b/Classes/ViewHelpers/Widget/Controller/GroupItemPaginateController.php @@ -63,8 +63,8 @@ class GroupItemPaginateController extends AbstractPaginateWidgetController } /** - * @param \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext $controllerContext - * @return \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext + * @param \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext $controllerContext + * @return \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ protected function setActiveSearchResultSet($controllerContext) { $controllerContext->setSearchResultSet($this->resultSet); diff --git a/Classes/ViewHelpers/Widget/Controller/ResultPaginateController.php b/Classes/ViewHelpers/Widget/Controller/ResultPaginateController.php index d19c30b..2ebedb3 100644 --- a/Classes/ViewHelpers/Widget/Controller/ResultPaginateController.php +++ b/Classes/ViewHelpers/Widget/Controller/ResultPaginateController.php @@ -56,8 +56,8 @@ class ResultPaginateController extends AbstractPaginateWidgetController } /** - * @param \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext $controllerContext - * @return \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext + * @param \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext $controllerContext + * @return \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ protected function setActiveSearchResultSet($controllerContext) { $controllerContext->setSearchResultSet($this->resultSet); diff --git a/Classes/Widget/AbstractWidgetController.php b/Classes/Widget/AbstractWidgetController.php index bc15d6b..4c7d3ca 100644 --- a/Classes/Widget/AbstractWidgetController.php +++ b/Classes/Widget/AbstractWidgetController.php @@ -18,7 +18,7 @@ use WapplerSystems\Meilisearch\ConnectionManager; use WapplerSystems\Meilisearch\Domain\Search\ResultSet\SearchResultSetService; use WapplerSystems\Meilisearch\Search; use WapplerSystems\Meilisearch\System\Configuration\ConfigurationManager; -use WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext; +use WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext; use WapplerSystems\Meilisearch\System\Configuration\TypoScriptConfiguration; use WapplerSystems\Meilisearch\Util; use WapplerSystems\Meilisearch\Widget\WidgetRequest; @@ -42,38 +42,38 @@ class AbstractWidgetController extends CoreAbstractWidgetController /** * @var ConfigurationManager */ - private $solrConfigurationManager; + private $meilisearchConfigurationManager; /** - * @var \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext + * @var \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ protected $controllerContext; /** * @param \WapplerSystems\Meilisearch\System\Configuration\ConfigurationManager */ - public function injectSolrConfigurationManager(ConfigurationManager $configurationManager) + public function injectMeilisearchConfigurationManager(ConfigurationManager $configurationManager) { - $this->solrConfigurationManager = $configurationManager; + $this->meilisearchConfigurationManager = $configurationManager; } /** * Initialize the controller context * - * @return \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext ControllerContext to be passed to the view + * @return \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext ControllerContext to be passed to the view * @api */ protected function buildControllerContext() { - /** @var $controllerContext \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext */ - $controllerContext = $this->objectManager->get(SolrControllerContext::class); + /** @var $controllerContext \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ + $controllerContext = $this->objectManager->get(MeilisearchControllerContext::class); $controllerContext->setRequest($this->request); $controllerContext->setResponse($this->response); if ($this->arguments !== null) { $controllerContext->setArguments($this->arguments); } $controllerContext->setUriBuilder($this->uriBuilder); - $typoScriptConfiguration = $this->solrConfigurationManager->getTypoScriptConfiguration(); + $typoScriptConfiguration = $this->meilisearchConfigurationManager->getTypoScriptConfiguration(); $controllerContext->setTypoScriptConfiguration($typoScriptConfiguration); $this->setActiveSearchResultSet($controllerContext); @@ -82,8 +82,8 @@ class AbstractWidgetController extends CoreAbstractWidgetController } /** - * @param \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext $controllerContext - * @return \WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext + * @param \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext $controllerContext + * @return \WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext */ protected function setActiveSearchResultSet($controllerContext) { @@ -102,9 +102,9 @@ class AbstractWidgetController extends CoreAbstractWidgetController */ protected function initializeSearch(TypoScriptConfiguration $typoScriptConfiguration) { - /** @var \WapplerSystems\Meilisearch\ConnectionManager $solrConnection */ - $solrConnection = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionByPageId($GLOBALS['TSFE']->id, Util::getLanguageUid(), $GLOBALS['TSFE']->MP); - $search = GeneralUtility::makeInstance(Search::class, /** @scrutinizer ignore-type */ $solrConnection); + /** @var \WapplerSystems\Meilisearch\ConnectionManager $meilisearchConnection */ + $meilisearchConnection = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionByPageId($GLOBALS['TSFE']->id, Util::getLanguageUid(), $GLOBALS['TSFE']->MP); + $search = GeneralUtility::makeInstance(Search::class, /** @scrutinizer ignore-type */ $meilisearchConnection); return GeneralUtility::makeInstance( SearchResultSetService::class, diff --git a/Classes/Widget/AbstractWidgetViewHelper.php b/Classes/Widget/AbstractWidgetViewHelper.php index 49caccc..db0db55 100644 --- a/Classes/Widget/AbstractWidgetViewHelper.php +++ b/Classes/Widget/AbstractWidgetViewHelper.php @@ -14,8 +14,8 @@ namespace WapplerSystems\Meilisearch\Widget; * The TYPO3 project - inspiring people to share! */ -use WapplerSystems\Meilisearch\Mvc\Controller\SolrControllerContext; -use WapplerSystems\Meilisearch\Widget\WidgetRequest as SolrFluidWidgetRequest; +use WapplerSystems\Meilisearch\Mvc\Controller\MeilisearchControllerContext; +use WapplerSystems\Meilisearch\Widget\WidgetRequest as MeilisearchFluidWidgetRequest; use TYPO3\CMS\Extbase\Mvc\Web\Response; use TYPO3\CMS\Extbase\Object\ObjectManagerInterface; use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\RootNode; @@ -120,7 +120,7 @@ abstract class AbstractWidgetViewHelper extends AbstractCoreWidgetViewHelper imp } /** - * @return SolrControllerContext + * @return MeilisearchControllerContext * @throws \InvalidArgumentException */ protected function getControllerContext() @@ -130,8 +130,8 @@ abstract class AbstractWidgetViewHelper extends AbstractCoreWidgetViewHelper imp $controllerContext = $this->renderingContext->getControllerContext(); } - if (!$controllerContext instanceof SolrControllerContext) { - throw new \InvalidArgumentException('No valid SolrControllerContext found', 1512998673); + if (!$controllerContext instanceof MeilisearchControllerContext) { + throw new \InvalidArgumentException('No valid MeilisearchControllerContext found', 1512998673); } return $controllerContext; @@ -204,7 +204,7 @@ abstract class AbstractWidgetViewHelper extends AbstractCoreWidgetViewHelper imp throw new MissingControllerException('initiateSubRequest() can not be called if there is no controller inside $this->controller. Make sure to add a corresponding injectController method to your WidgetViewHelper class "' . get_class($this) . '".', 1284401632); } /** @var $subRequest \WapplerSystems\Meilisearch\Widget\WidgetRequest */ - $subRequest = $this->objectManager->get(SolrFluidWidgetRequest::class); + $subRequest = $this->objectManager->get(MeilisearchFluidWidgetRequest::class); $subRequest->setWidgetContext($this->widgetContext); $this->passArgumentsToSubRequest($subRequest); diff --git a/Configuration/RequestMiddlewares.php b/Configuration/RequestMiddlewares.php index 2648933..12d1848 100644 --- a/Configuration/RequestMiddlewares.php +++ b/Configuration/RequestMiddlewares.php @@ -3,16 +3,16 @@ /** @noinspection PhpFullyQualifiedNameUsageInspection */ return [ 'frontend' => [ - 'apache-solr-for-typo3/page-indexer-fe-user-authenticator' => [ + 'apache-meilisearch-for-typo3/page-indexer-fe-user-authenticator' => [ 'target' => \WapplerSystems\Meilisearch\Middleware\FrontendUserAuthenticator::class, - 'before' => ['apache-solr-for-typo3/page-indexer-initialization'] + 'before' => ['apache-meilisearch-for-typo3/page-indexer-initialization'] ], - 'apache-solr-for-typo3/page-indexer-initialization' => [ + 'apache-meilisearch-for-typo3/page-indexer-initialization' => [ 'target' => \WapplerSystems\Meilisearch\Middleware\PageIndexerInitialization::class, 'before' => ['typo3/cms-frontend/tsfe'], 'after' => ['typo3/cms-core/normalized-params-attribute'] ], - 'apache-solr-for-typo3/page-indexer-finisher' => [ + 'apache-meilisearch-for-typo3/page-indexer-finisher' => [ 'target' => \WapplerSystems\Meilisearch\Middleware\PageIndexerFinisher::class, 'after' => ['typo3/cms-frontend/content-length-headers'] ] diff --git a/Configuration/SiteConfiguration/Overrides/sites.php b/Configuration/SiteConfiguration/Overrides/sites.php index 5db4b0a..012613b 100644 --- a/Configuration/SiteConfiguration/Overrides/sites.php +++ b/Configuration/SiteConfiguration/Overrides/sites.php @@ -1,11 +1,11 @@ 'Enable Solr for this site', +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_enabled_read'] = [ + 'label' => 'Enable Meilisearch for this site', 'onChange' => 'reload', 'config' => [ 'type' => 'check', @@ -20,7 +20,7 @@ $GLOBALS['SiteConfiguration']['site']['columns']['solr_enabled_read'] = [ ], ]; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_scheme_read'] = [ +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_scheme_read'] = [ 'label' => 'Scheme', 'config' => [ 'type' => 'select', @@ -33,10 +33,10 @@ $GLOBALS['SiteConfiguration']['site']['columns']['solr_scheme_read'] = [ 'minitems' => 0, 'maxitems' => 1 ], - 'displayCond' => 'FIELD:solr_enabled_read:=:1' + 'displayCond' => 'FIELD:meilisearch_enabled_read:=:1' ]; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_host_read'] = [ +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_host_read'] = [ 'label' => 'Host', 'config' => [ 'type' => 'input', @@ -44,33 +44,43 @@ $GLOBALS['SiteConfiguration']['site']['columns']['solr_host_read'] = [ 'placeholder' => 'localhost', 'size' => 10 ], - 'displayCond' => 'FIELD:solr_enabled_read:=:1' + 'displayCond' => 'FIELD:meilisearch_enabled_read:=:1' ]; - -$GLOBALS['SiteConfiguration']['site']['columns']['solr_port_read'] = [ +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_port_read'] = [ 'label' => 'Port', 'config' => [ 'type' => 'input', 'eval' => 'required', 'size' => 5, - 'default' => 8983 + 'default' => 7700 ], - 'displayCond' => 'FIELD:solr_enabled_read:=:1' + 'displayCond' => 'FIELD:meilisearch_enabled_read:=:1' ]; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_path_read'] = [ - 'label' => 'URL path to Apache Solr server', - 'description' => 'I.e. if you use Hosted-Solr.com the path inside the admin panel. Should not contain "/solr/".', +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_masterkey_read'] = [ + 'label' => 'Master key', + 'config' => [ + 'type' => 'input', + 'eval' => 'required', + 'size' => 20, + 'default' => '' + ], + 'displayCond' => 'FIELD:meilisearch_enabled_read:=:1' +]; + +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_path_read'] = [ + 'label' => 'URL path to Meilisearch server', + 'description' => 'I.e. if you use Hosted-Meilisearch.com the path inside the admin panel. Should not contain "/meilisearch/".', 'config' => [ 'type' => 'input', 'eval' => 'required', 'default' => '/' ], - 'displayCond' => 'FIELD:solr_enabled_read:=:1' + 'displayCond' => 'FIELD:meilisearch_enabled_read:=:1' ]; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_use_write_connection'] = [ +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_use_write_connection'] = [ 'label' => 'Use different write connection', 'onChange' => 'reload', 'config' => [ @@ -84,36 +94,36 @@ $GLOBALS['SiteConfiguration']['site']['columns']['solr_use_write_connection'] = ] ] ], - 'displayCond' => 'FIELD:solr_enabled_read:=:1' + 'displayCond' => 'FIELD:meilisearch_enabled_read:=:1' ]; // write TCA -$GLOBALS['SiteConfiguration']['site']['columns']['solr_scheme_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['solr_scheme_read']; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_scheme_write']['displayCond'] = 'FIELD:solr_use_write_connection:=:1'; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_scheme_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_scheme_read']; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_scheme_write']['displayCond'] = 'FIELD:meilisearch_use_write_connection:=:1'; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_port_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['solr_port_read']; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_port_write']['config']['eval'] = ''; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_port_write']['displayCond'] = 'FIELD:solr_use_write_connection:=:1'; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_port_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_port_read']; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_port_write']['config']['eval'] = ''; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_port_write']['displayCond'] = 'FIELD:meilisearch_use_write_connection:=:1'; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_host_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['solr_host_read']; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_host_write']['config']['eval'] = ''; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_host_write']['displayCond'] = 'FIELD:solr_use_write_connection:=:1'; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_host_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_host_read']; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_host_write']['config']['eval'] = ''; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_host_write']['displayCond'] = 'FIELD:meilisearch_use_write_connection:=:1'; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_path_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['solr_path_read']; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_path_write']['config']['eval'] = ''; -$GLOBALS['SiteConfiguration']['site']['columns']['solr_path_write']['displayCond'] = 'FIELD:solr_use_write_connection:=:1'; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_path_write'] = $GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_path_read']; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_path_write']['config']['eval'] = ''; +$GLOBALS['SiteConfiguration']['site']['columns']['meilisearch_path_write']['displayCond'] = 'FIELD:meilisearch_use_write_connection:=:1'; -$GLOBALS['SiteConfiguration']['site']['palettes']['solr_read']['showitem'] = 'solr_scheme_read, solr_host_read, solr_port_read, solr_path_read'; -$GLOBALS['SiteConfiguration']['site']['palettes']['solr_write']['showitem'] = 'solr_scheme_write, solr_host_write, solr_port_write, solr_path_write'; +$GLOBALS['SiteConfiguration']['site']['palettes']['meilisearch_read']['showitem'] = 'meilisearch_scheme_read, meilisearch_host_read, meilisearch_port_read, meilisearch_path_read'; +$GLOBALS['SiteConfiguration']['site']['palettes']['meilisearch_write']['showitem'] = 'meilisearch_scheme_write, meilisearch_host_write, meilisearch_port_write, meilisearch_path_write'; -$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] .= ',--div--;Solr,solr_enabled_read,--palette--;;solr_read, solr_use_write_connection,--palette--;;solr_write'; +$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] .= ',--div--;Meilisearch,meilisearch_enabled_read,--palette--;;meilisearch_read, meilisearch_use_write_connection,--palette--;;meilisearch_write'; /** * Language specific core configuration */ -$GLOBALS['SiteConfiguration']['site_language']['columns']['solr_core_read'] = [ +$GLOBALS['SiteConfiguration']['site_language']['columns']['meilisearch_core_read'] = [ 'label' => 'Corename', 'config' => [ 'type' => 'input', @@ -166,6 +176,6 @@ $GLOBALS['SiteConfiguration']['site_language']['columns']['solr_core_read'] = [ $GLOBALS['SiteConfiguration']['site_language']['types']['1']['showitem'] = str_replace( 'flag', - 'flag, solr_core_read, ', + 'flag, meilisearch_core_read, ', $GLOBALS['SiteConfiguration']['site_language']['types']['1']['showitem'] ); diff --git a/Configuration/TCA/Overrides/sys_template.php b/Configuration/TCA/Overrides/sys_template.php index 8a8f87b..c2f496a 100644 --- a/Configuration/TCA/Overrides/sys_template.php +++ b/Configuration/TCA/Overrides/sys_template.php @@ -2,7 +2,7 @@ // TypoScript \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', - 'Configuration/TypoScript/Solr/', 'Search - Base Configuration'); + 'Configuration/TypoScript/Meilisearch/', 'Search - Base Configuration'); // StyleSheets \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', @@ -10,7 +10,7 @@ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/StyleSheets/', 'Search - Default Stylesheets'); -// OpenSearch +// OpenSearch++ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/OpenSearch/', 'Search - OpenSearch'); @@ -21,9 +21,6 @@ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/IndexQueueNewsContentElements/', 'Search - Index Queue Configuration for news with content elements'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', - 'Configuration/TypoScript/Examples/IndexQueueTtNews/', - 'Search - Index Queue Configuration for tt_news'); // Examples \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', @@ -32,44 +29,44 @@ \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/EverythingOn/', 'Search - (Example) Everything On'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/FilterPages/', 'Search - (Example) Filter to only show page results'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/ConnectionFromConfVars/', 'Deprecated: Search - (Example) Use connection settings from TYPO3_CONF_VARS'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Suggest/', 'Search - (Example) Suggest/autocomplete with jquery'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/Options/', 'Search - (Example) Options facet on author field'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/OptionsToggle/', 'Search - (Example) Options with on/off toggle'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/OptionsPrefixGrouped/', 'Search - (Example) Options grouped by prefix'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/OptionsSinglemode/', 'Search - (Example) Options with singlemode (only one option at a time)'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/OptionsFiltered/', 'Search - (Example) Options filterable by option value'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/QueryGroup/', 'Search - (Example) QueryGroup facet on the created field'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/Hierarchy/', 'Search - (Example) Hierarchy facet on the rootline field'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/DateRange/', 'Search - (Example) DateRange facet with jquery ui datepicker on created field'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Facets/NumericRange/', 'Search - (Example) NumericRange facet with jquery ui slider on pid field'); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('solr', +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('meilisearch', 'Configuration/TypoScript/Examples/Ajaxify/', 'Search - Ajaxify the search results with jQuery'); diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index 7ee7b33..888a403 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -5,9 +5,9 @@ if (!defined ('TYPO3_MODE')) { } // Register the plugins -$pluginSignature = 'solr_pi_search'; +$pluginSignature = 'meilisearch_pi_search'; \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - 'solr', + 'meilisearch', 'pi_search', 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:tt_content.list_type_pi_search' ); @@ -21,9 +21,9 @@ $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignat ); -$pluginSignature = 'solr_pi_frequentlysearched'; +$pluginSignature = 'meilisearch_pi_frequentlysearched'; \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - 'solr', + 'meilisearch', 'pi_frequentlySearched', 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:tt_content.list_type_pi_frequentsearches' ); @@ -31,9 +31,9 @@ $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist'][$pluginSi = 'layout,select_key,pages,recursive'; -$pluginSignature = 'solr_pi_results'; +$pluginSignature = 'meilisearch_pi_results'; \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - 'solr', + 'meilisearch', 'pi_results', 'LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:tt_content.list_type_pi_results' ); diff --git a/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig b/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig index 50e49ec..0b2f401 100644 --- a/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig +++ b/Configuration/TSconfig/Page/Mod/Wizards/NewContentElement.tsconfig @@ -1,12 +1,12 @@ mod.wizards.newContentElement.wizardItems.plugins { elements { tx_meilisearch_results { - iconIdentifier = extensions-solr-plugin-contentelement + iconIdentifier = extensions-meilisearch-plugin-contentelement title = LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:plugin_results description = LLL:EXT:meilisearch/Resources/Private/Language/locallang.xlf:plugin_results_description tt_content_defValues { CType = list - list_type = solr_pi_results + list_type = meilisearch_pi_results } } } diff --git a/Configuration/TypoScript/Examples/Ajaxify/setup.typoscript b/Configuration/TypoScript/Examples/Ajaxify/setup.typoscript index e412858..9f963cc 100644 --- a/Configuration/TypoScript/Examples/Ajaxify/setup.typoscript +++ b/Configuration/TypoScript/Examples/Ajaxify/setup.typoscript @@ -14,9 +14,9 @@ tx_meilisearch_ajaxPage { 10 = USER 10 { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run - extensionName = Solr + extensionName = Meilisearch pluginName = pi_results - vendorName = ApacheSolrForTypo3 + vendorName = WapplerSystems controller = Search action = results switchableControllerActions { @@ -32,8 +32,8 @@ tx_meilisearch_ajaxPage { } page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-uri = EXT:meilisearch/Resources/Public/JavaScript/JQuery/URI.min.js - solr-uri-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.URI.min.js - solr-ajaxify = EXT:meilisearch/Resources/Public/JavaScript/search_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-uri = EXT:meilisearch/Resources/Public/JavaScript/JQuery/URI.min.js + meilisearch-uri-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.URI.min.js + meilisearch-ajaxify = EXT:meilisearch/Resources/Public/JavaScript/search_controller.js } diff --git a/Configuration/TypoScript/Examples/ConnectionFromConfVars/setup.typoscript b/Configuration/TypoScript/Examples/ConnectionFromConfVars/setup.typoscript index e3a06b9..67b8d78 100644 --- a/Configuration/TypoScript/Examples/ConnectionFromConfVars/setup.typoscript +++ b/Configuration/TypoScript/Examples/ConnectionFromConfVars/setup.typoscript @@ -1,24 +1,24 @@ plugin.tx_meilisearch { - solr { + meilisearch { scheme = TEXT scheme { - value = {$plugin.tx_meilisearch.solr.scheme} - override.data = global:TYPO3_CONF_VARS|EXTCONF|solr|scheme + value = {$plugin.tx_meilisearch.meilisearch.scheme} + override.data = global:TYPO3_CONF_VARS|EXTCONF|meilisearch|scheme } host = TEXT host { - value = {$plugin.tx_meilisearch.solr.host} - override.data = global:TYPO3_CONF_VARS|EXTCONF|solr|host + value = {$plugin.tx_meilisearch.meilisearch.host} + override.data = global:TYPO3_CONF_VARS|EXTCONF|meilisearch|host } port = TEXT port { - value = {$plugin.tx_meilisearch.solr.port} - override.data = global:TYPO3_CONF_VARS|EXTCONF|solr|port + value = {$plugin.tx_meilisearch.meilisearch.port} + override.data = global:TYPO3_CONF_VARS|EXTCONF|meilisearch|port } path = TEXT path { - value = {$plugin.tx_meilisearch.solr.path} - override.data = global:TYPO3_CONF_VARS|EXTCONF|solr|path + value = {$plugin.tx_meilisearch.meilisearch.path} + override.data = global:TYPO3_CONF_VARS|EXTCONF|meilisearch|path } } } diff --git a/Configuration/TypoScript/Examples/Facets/DateRange/setup.typoscript b/Configuration/TypoScript/Examples/Facets/DateRange/setup.typoscript index 1d44128..6189b92 100644 --- a/Configuration/TypoScript/Examples/Facets/DateRange/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/DateRange/setup.typoscript @@ -18,11 +18,11 @@ plugin.tx_meilisearch.search.faceting.facets { } # Load js files page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-ui = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery-ui.min.js - solr-daterange = EXT:meilisearch/Resources/Public/JavaScript/facet_daterange_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-ui = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery-ui.min.js + meilisearch-daterange = EXT:meilisearch/Resources/Public/JavaScript/facet_daterange_controller.js } page.includeCSS { - solr-ui = EXT:meilisearch/Resources/Css/JQueryUi/jquery-ui.custom.css + meilisearch-ui = EXT:meilisearch/Resources/Css/JQueryUi/jquery-ui.custom.css } diff --git a/Configuration/TypoScript/Examples/Facets/NumericRange/setup.typoscript b/Configuration/TypoScript/Examples/Facets/NumericRange/setup.typoscript index 853735e..02dab4c 100644 --- a/Configuration/TypoScript/Examples/Facets/NumericRange/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/NumericRange/setup.typoscript @@ -15,11 +15,11 @@ plugin.tx_meilisearch.search.faceting.facets { } # Load js files page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-ui = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery-ui.min.js - solr-numericrange = EXT:meilisearch/Resources/Public/JavaScript/facet_numericrange_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-ui = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery-ui.min.js + meilisearch-numericrange = EXT:meilisearch/Resources/Public/JavaScript/facet_numericrange_controller.js } page.includeCSS { - solr-ui = EXT:meilisearch/Resources/Css/JQueryUi/jquery-ui.custom.css + meilisearch-ui = EXT:meilisearch/Resources/Css/JQueryUi/jquery-ui.custom.css } diff --git a/Configuration/TypoScript/Examples/Facets/Options/setup.typoscript b/Configuration/TypoScript/Examples/Facets/Options/setup.typoscript index 66d6c0e..17b8465 100644 --- a/Configuration/TypoScript/Examples/Facets/Options/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/Options/setup.typoscript @@ -7,6 +7,6 @@ plugin.tx_meilisearch.search.faceting.facets { } page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js } diff --git a/Configuration/TypoScript/Examples/Facets/OptionsFiltered/setup.typoscript b/Configuration/TypoScript/Examples/Facets/OptionsFiltered/setup.typoscript index 822be81..e2c9cb4 100644 --- a/Configuration/TypoScript/Examples/Facets/OptionsFiltered/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/OptionsFiltered/setup.typoscript @@ -8,6 +8,6 @@ plugin.tx_meilisearch.search.faceting.facets { } page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js } diff --git a/Configuration/TypoScript/Examples/Facets/OptionsPrefixGrouped/setup.typoscript b/Configuration/TypoScript/Examples/Facets/OptionsPrefixGrouped/setup.typoscript index caac0a4..9b85082 100644 --- a/Configuration/TypoScript/Examples/Facets/OptionsPrefixGrouped/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/OptionsPrefixGrouped/setup.typoscript @@ -8,6 +8,6 @@ plugin.tx_meilisearch.search.faceting.facets { } page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js } diff --git a/Configuration/TypoScript/Examples/Facets/OptionsSinglemode/setup.typoscript b/Configuration/TypoScript/Examples/Facets/OptionsSinglemode/setup.typoscript index f464e02..bc248e6 100644 --- a/Configuration/TypoScript/Examples/Facets/OptionsSinglemode/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/OptionsSinglemode/setup.typoscript @@ -9,6 +9,6 @@ plugin.tx_meilisearch.search.faceting.facets { } page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js } diff --git a/Configuration/TypoScript/Examples/Facets/OptionsToggle/setup.typoscript b/Configuration/TypoScript/Examples/Facets/OptionsToggle/setup.typoscript index f3f5f86..896b2f1 100644 --- a/Configuration/TypoScript/Examples/Facets/OptionsToggle/setup.typoscript +++ b/Configuration/TypoScript/Examples/Facets/OptionsToggle/setup.typoscript @@ -8,6 +8,6 @@ plugin.tx_meilisearch.search.faceting.facets { } page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-options = EXT:meilisearch/Resources/Public/JavaScript/facet_options_controller.js } diff --git a/Configuration/TypoScript/Examples/IndexQueueNews/setup.typoscript b/Configuration/TypoScript/Examples/IndexQueueNews/setup.typoscript index 2c645ab..73d4f8e 100644 --- a/Configuration/TypoScript/Examples/IndexQueueNews/setup.typoscript +++ b/Configuration/TypoScript/Examples/IndexQueueNews/setup.typoscript @@ -77,7 +77,7 @@ plugin.tx_meilisearch.index.queue { default = TEXT default { typolink.parameter = {$plugin.tx_news.settings.detailPid} - typolink.additionalParams = &tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&tx_news_pi1[news]={field:uid}&L={field:__solr_index_language} + typolink.additionalParams = &tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&tx_news_pi1[news]={field:uid}&L={field:__meilisearch_index_language} typolink.additionalParams.insertData = 1 typolink.useCacheHash = 1 typolink.returnLast = url diff --git a/Configuration/TypoScript/Examples/IndexQueueTtNews/setup.typoscript b/Configuration/TypoScript/Examples/IndexQueueTtNews/setup.typoscript index 8958278..6a4f8ae 100644 --- a/Configuration/TypoScript/Examples/IndexQueueTtNews/setup.typoscript +++ b/Configuration/TypoScript/Examples/IndexQueueTtNews/setup.typoscript @@ -50,7 +50,7 @@ plugin.tx_meilisearch.index.queue { url = TEXT url { typolink.parameter = {$plugin.tt_news.singlePid} - typolink.additionalParams = &tx_ttnews[tt_news]={field:uid}&L={field:__solr_index_language} + typolink.additionalParams = &tx_ttnews[tt_news]={field:uid}&L={field:__meilisearch_index_language} typolink.additionalParams.insertData = 1 typolink.returnLast = url typolink.useCacheHash = 1 diff --git a/Configuration/TypoScript/Examples/Suggest/setup.typoscript b/Configuration/TypoScript/Examples/Suggest/setup.typoscript index ccad76e..dfb2ef9 100644 --- a/Configuration/TypoScript/Examples/Suggest/setup.typoscript +++ b/Configuration/TypoScript/Examples/Suggest/setup.typoscript @@ -15,9 +15,9 @@ tx_meilisearch_suggest { 10 = USER 10 { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run - extensionName = Solr + extensionName = Meilisearch pluginName = pi_suggest - vendorName = ApacheSolrForTypo3 + vendorName = WapplerSystems controller = Suggest action = suggest } @@ -38,11 +38,11 @@ plugin.tx_meilisearch { # Load js files page.includeJSFooterlibs { - solr-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js - solr-autocomplete = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.autocomplete.min.js - solr-suggest = EXT:meilisearch/Resources/Public/JavaScript/suggest_controller.js + meilisearch-jquery = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.min.js + meilisearch-autocomplete = EXT:meilisearch/Resources/Public/JavaScript/JQuery/jquery.autocomplete.min.js + meilisearch-suggest = EXT:meilisearch/Resources/Public/JavaScript/suggest_controller.js } page.includeCSS { - solr-suggest = EXT:meilisearch/Resources/Public/StyleSheets/Frontend/suggest.css + meilisearch-suggest = EXT:meilisearch/Resources/Public/StyleSheets/Frontend/suggest.css } diff --git a/Configuration/TypoScript/Solr/constants.txt b/Configuration/TypoScript/Solr/constants.txt index 5d97c2f..8ab3889 100644 --- a/Configuration/TypoScript/Solr/constants.txt +++ b/Configuration/TypoScript/Solr/constants.txt @@ -1,2 +1,2 @@ # Important: This file is deprecated and will removed with EXT:meilisearch 12.x -@import 'EXT:meilisearch/Configuration/TypoScript/Solr/constants.typoscript' +@import 'EXT:meilisearch/Configuration/TypoScript/Meilisearch/constants.typoscript' diff --git a/Configuration/TypoScript/Solr/constants.typoscript b/Configuration/TypoScript/Solr/constants.typoscript index 7dde716..7fb71c2 100644 --- a/Configuration/TypoScript/Solr/constants.typoscript +++ b/Configuration/TypoScript/Solr/constants.typoscript @@ -1,5 +1,5 @@ plugin.tx_meilisearch { - # cat=meilisearch: basic/10/enable; type=boolean; label=Enable/disable Solr extension: EXT:meilisearch should only be enabled for relevant sys_languages, to avoid unnecessary connections and overwritten contents. + # cat=meilisearch: basic/10/enable; type=boolean; label=Enable/disable Meilisearch extension: EXT:meilisearch should only be enabled for relevant sys_languages, to avoid unnecessary connections and overwritten contents. enabled = 1 view { @@ -11,7 +11,7 @@ plugin.tx_meilisearch { meilisearch { scheme = http host = localhost - port = 8983 + port = 7700 path = /meilisearch/core_en/ username = password = diff --git a/Configuration/TypoScript/Solr/setup.txt b/Configuration/TypoScript/Solr/setup.txt index ec70ccb..62a76b1 100644 --- a/Configuration/TypoScript/Solr/setup.txt +++ b/Configuration/TypoScript/Solr/setup.txt @@ -1,2 +1,2 @@ # Important: This file is deprecated and will removed with EXT:meilisearch 12.x -@import 'EXT:meilisearch/Configuration/TypoScript/Solr/setup.typoscript' +@import 'EXT:meilisearch/Configuration/TypoScript/Meilisearch/setup.typoscript' diff --git a/Configuration/TypoScript/Solr/setup.typoscript b/Configuration/TypoScript/Solr/setup.typoscript index 14176c3..db15e40 100644 --- a/Configuration/TypoScript/Solr/setup.typoscript +++ b/Configuration/TypoScript/Solr/setup.typoscript @@ -1,429 +1,429 @@ plugin.tx_meilisearch { - enabled = {$plugin.tx_meilisearch.enabled} + enabled = {$plugin.tx_meilisearch.enabled} - enableDebugMode = 0 + enableDebugMode = 0 - general { - dateFormat.date = d.m.Y H:i - } + general { + dateFormat.date = d.m.Y H:i + } - meilisearch { - read { - scheme = {$plugin.tx_meilisearch.meilisearch.scheme} - host = {$plugin.tx_meilisearch.meilisearch.host} - port = {$plugin.tx_meilisearch.meilisearch.port} - path = {$plugin.tx_meilisearch.meilisearch.path} - username = {$plugin.tx_meilisearch.meilisearch.username} - password = {$plugin.tx_meilisearch.meilisearch.password} + meilisearch { + read { + scheme = {$plugin.tx_meilisearch.meilisearch.scheme} + host = {$plugin.tx_meilisearch.meilisearch.host} + port = {$plugin.tx_meilisearch.meilisearch.port} + apiKey = {$plugin.tx_meilisearch.meilisearch.apiKey} + } + + write { + scheme = {$plugin.tx_meilisearch.meilisearch.scheme} + host = {$plugin.tx_meilisearch.meilisearch.host} + port = {$plugin.tx_meilisearch.meilisearch.port} + apiKey = {$plugin.tx_meilisearch.meilisearch.apiKey} + } + } + + index { + additionalFields { + + } + + // assigns processing instructions to Meilisearch fields during indexing, Meilisearch field = processing instruction + fieldProcessingInstructions { + changed = timestampToIsoDate + created = timestampToIsoDate + endtime = timestampToUtcIsoDate + rootline = pageUidToHierarchy + } + + queue { + + // mapping tableName.fields.MeilisearchFieldName => TableFieldName (+ cObj processing) + + pages = 1 + pages { + initialization = WapplerSystems\Meilisearch\IndexQueue\Initializer\Page + + // allowed page types (doktype) when indexing records from table "pages" + allowedPageTypes = 1,4,7 + + indexingPriority = 0 + + indexer = WapplerSystems\Meilisearch\IndexQueue\PageIndexer + indexer { + // add options for the indexer here } - write { - scheme = {$plugin.tx_meilisearch.meilisearch.scheme} - host = {$plugin.tx_meilisearch.meilisearch.host} - port = {$plugin.tx_meilisearch.meilisearch.port} - path = {$plugin.tx_meilisearch.meilisearch.path} - username = {$plugin.tx_meilisearch.meilisearch.username} - password = {$plugin.tx_meilisearch.meilisearch.password} + + // Only index standard pages and mount points that are not overlayed. + additionalWhereClause = (doktype = 1 OR doktype=4 OR (doktype=7 AND mount_pid_ol=0)) AND no_search = 0 + + //exclude some html parts inside TYPO3SEARCH markers by classname (comma list) + excludeContentByClass = typo3-search-exclude + + fields { + sortSubTitle_stringS = subtitle } - } + } - index { - additionalFields { + } + } - } + search { + // fields that are allowed to contain html and should be skipped during escaping after retrieval from Meilisearch + // by default all fields except url get escaped, you might need to add other url fields here as well because of & + // characters in the url. + trustedFields = url - // assigns processing instructions to Solr fields during indexing, Solr field = processing instruction - fieldProcessingInstructions { - changed = timestampToIsoDate - created = timestampToIsoDate - endtime = timestampToUtcIsoDate - rootline = pageUidToHierarchy - } + targetPage = {$plugin.tx_meilisearch.search.targetPage} - queue { + initializeWithEmptyQuery = 0 + showResultsOfInitialEmptyQuery = 0 - // mapping tableName.fields.SolrFieldName => TableFieldName (+ cObj processing) + initializeWithQuery = + showResultsOfInitialQuery = 0 - pages = 1 - pages { - initialization = WapplerSystems\Meilisearch\IndexQueue\Initializer\Page + keepExistingParametersForNewSearches = 0 - // allowed page types (doktype) when indexing records from table "pages" - allowedPageTypes = 1,4,7 + ignoreGlobalQParameter = 0 - indexingPriority = 0 + query { + allowEmptyQuery = 0 - indexer = WapplerSystems\Meilisearch\IndexQueue\PageIndexer - indexer { - // add options for the indexer here - } + allowedSites = __meilisearch_current_site - // Only index standard pages and mount points that are not overlayed. - additionalWhereClause = (doktype = 1 OR doktype=4 OR (doktype=7 AND mount_pid_ol=0)) AND no_search = 0 + // qf parameter http://wiki.apache.org/meilisearch/DisMaxQParserPlugin#qf_.28Query_Fields.29 + queryFields = content^40.0, title^5.0, keywords^2.0, tagsH1^5.0, tagsH2H3^3.0, tagsH4H5H6^2.0, tagsInline^1.0, description^4.0, abstract^1.0, subtitle^1.0, navtitle^1.0, author^1.0 - //exclude some html parts inside TYPO3SEARCH markers by classname (comma list) - excludeContentByClass = typo3-search-exclude + // fl parameter http://wiki.apache.org/meilisearch/CommonQueryParameters#fl + returnFields = *, score - fields { - sortSubTitle_stringS = subtitle - } - } + // see http://wiki.apache.org/meilisearch/DisMaxRequestHandler#mm_.28Minimum_.27Should.27_Match.29 + minimumMatch = - } - } + // see http://wiki.apache.org/meilisearch/DisMaxRequestHandler#bf_.28Boost_Functions.29 + boostFunction = - search { - // fields that are allowed to contain html and should be skipped during escaping after retrieval from Solr - // by default all fields except url get escaped, you might need to add other url fields here as well because of & - // characters in the url. - trustedFields = url + // see http://wiki.apache.org/meilisearch/DisMaxQParserPlugin#bq_.28Boost_Query.29 + boostQuery = - targetPage = {$plugin.tx_meilisearch.search.targetPage} + // see http://lucene.apache.org/meilisearch/guide/7_0/the-dismax-query-parser.html#the-tie-tie-breaker-parameter + tieParameter = - initializeWithEmptyQuery = 0 - showResultsOfInitialEmptyQuery = 0 + filter { - initializeWithQuery = - showResultsOfInitialQuery = 0 + } - keepExistingParametersForNewSearches = 0 + sortBy = - ignoreGlobalQParameter = 0 + // https://www.hathitrust.org/blogs/large-scale-search/slow-queries-and-common-words-part-2 + // http://blog.thedigitalgroup.com/vijaym/understanding-phrasequery-and-slop-in-meilisearch/ + // https://meilisearch.pl/en/2010/07/14/meilisearch-and-phrasequery-phrase-bonus-in-query-stage/ - query { - allowEmptyQuery = 0 + // see https://lucene.apache.org/meilisearch/guide/7_0/the-dismax-query-parser.html#TheDisMaxQueryParser-Thepf_PhraseFields_Parameter + // EXT:Meilisearch configures Schemas from Meilisearch to use content field with boost of 2.0 per default. + // By enabling of phrase search, Meilisearch will build a phrase queries for a list of defined fields(phrase.fields) and boost the documents containing the terms in defined proximity(phrase.slop). + // phrase.querySlop + phrase = 0 + phrase { + // Note: Those are field for implicit phrase searching. On explicit "phrase searching" Meilisearch uses queryFields("qf" parameter) + fields = content^10.0, title^10.0, tagsH1^10.0, tagsH2H3^10.0, tagsH4H5H6^10.0, tagsInline^10.0, description^10.0, abstract^10.0, subtitle^10.0, navtitle^10.0 + // The number of words between words in query phrase is the slop-value. + // e.g. on query phrase "Hello World" + // @ slop = 0 will math "Hello World" but not "Hello wonderful World" + // @ slop = 1 will math "Hello World" and/or "Hello wonderful World" + // Note: this value is for implicit phrase searching(without double quotes) + slop = 0 - allowedSites = __solr_current_site + // The concept of query slop is similar to phrase.slop but it applies to the explicit phrase queries from the user and to match documents instead of boosting. + // Also if the user uses double quotes in the search term, then + // the query slop value is used and + // the result contains only the documents with those phrase. + // see https://lucene.apache.org/meilisearch/guide/7_0/the-extended-dismax-query-parser.html http://lucene.472066.n3.nabble.com/Query-slop-vs-phrase-slop-td1637041.html + // Note: this value is for explicit "phrase searching"(with double quotes) + querySlop = 0 + } - // qf parameter http://wiki.apache.org/solr/DisMaxQParserPlugin#qf_.28Query_Fields.29 - queryFields = content^40.0, title^5.0, keywords^2.0, tagsH1^5.0, tagsH2H3^3.0, tagsH4H5H6^2.0, tagsInline^1.0, description^4.0, abstract^1.0, subtitle^1.0, navtitle^1.0, author^1.0 + // bigram phrase functionality is similar to the Ngram filters, difference is that + // filters strip down the words to chars(char combinations) + // bigraming phrases strip down the sentence to the two-word combinations(phrases) + // e.g. "bigraming phrases strip down the sentence to phrases" generates following + // "bigraming phrases" + // "phrases strip" + // "strip down" + // "down the" + // "the sentence" + // "sentence to" + // "to phrases" + // Note: The triplets phrases will be stripped down to two two-word phrases + bigramPhrase = 0 + bigramPhrase { + fields = content^10.0, title^10.0, tagsH1^10.0, tagsH2H3^10.0, tagsH4H5H6^10.0, tagsInline^10.0, description^10.0, abstract^10.0, subtitle^10.0, navtitle^10.0 + slop = 0 + } - // fl parameter http://wiki.apache.org/solr/CommonQueryParameters#fl - returnFields = *, score + // Please see bigram phrases. Difference to bi is tri, which means building of triplets phrases. + // e.g. "trigraming phrases strip down the sentence to triplets phrases" generates following triplets + // "trigraming phrases strip" + // "phrases strip down" + // "strip down the" + // "down the sentence" + // "the sentence to" + // "sentence to triplets" + // "to triplets phrases" + trigramPhrase = 0 + trigramPhrase { + fields = content^10.0, title^10.0, tagsH1^10.0, tagsH2H3^10.0, tagsH4H5H6^10.0, tagsInline^10.0, description^10.0, abstract^10.0, subtitle^10.0, navtitle^10.0 + slop = 0 + } + } - // see http://wiki.apache.org/solr/DisMaxRequestHandler#mm_.28Minimum_.27Should.27_Match.29 - minimumMatch = + results { + resultsHighlighting = 0 + resultsHighlighting { + highlightFields = content + fragmentSize = 200 + fragmentSeparator = [...] - // see http://wiki.apache.org/solr/DisMaxRequestHandler#bf_.28Boost_Functions.29 - boostFunction = + wrap = | + } - // see http://wiki.apache.org/solr/DisMaxQParserPlugin#bq_.28Boost_Query.29 - boostQuery = + siteHighlighting = 0 - // see http://lucene.apache.org/solr/guide/7_0/the-dismax-query-parser.html#the-tie-tie-breaker-parameter - tieParameter = + resultsPerPage = {$plugin.tx_meilisearch.search.results.resultsPerPage} + resultsPerPageSwitchOptions = 10, 25, 50 - filter { + showDocumentScoreAnalysis = 0 + } - } + spellchecking = 0 + spellchecking { + wrap = |
###LLL:didYouMean### |
| + searchUsingSpellCheckerSuggestion = 0 + numberOfSuggestionsToTry = 1 + } - sortBy = + lastSearches = 0 + lastSearches { + limit = 10 + // tracking mode "user" or "global" + mode = user + } - // https://www.hathitrust.org/blogs/large-scale-search/slow-queries-and-common-words-part-2 - // http://blog.thedigitalgroup.com/vijaym/understanding-phrasequery-and-slop-in-solr/ - // https://solr.pl/en/2010/07/14/solr-and-phrasequery-phrase-bonus-in-query-stage/ + frequentSearches = 0 + frequentSearches { + useLowercaseKeywords = 0 - // see https://lucene.apache.org/solr/guide/7_0/the-dismax-query-parser.html#TheDisMaxQueryParser-Thepf_PhraseFields_Parameter - // EXT:Solr configures Schemas from Apache Solr to use content field with boost of 2.0 per default. - // By enabling of phrase search, Apache Solr will build a phrase queries for a list of defined fields(phrase.fields) and boost the documents containing the terms in defined proximity(phrase.slop). - // phrase.querySlop - phrase = 0 - phrase { - // Note: Those are field for implicit phrase searching. On explicit "phrase searching" Apache Solr uses queryFields("qf" parameter) - fields = content^10.0, title^10.0, tagsH1^10.0, tagsH2H3^10.0, tagsH4H5H6^10.0, tagsInline^10.0, description^10.0, abstract^10.0, subtitle^10.0, navtitle^10.0 - // The number of words between words in query phrase is the slop-value. - // e.g. on query phrase "Hello World" - // @ slop = 0 will math "Hello World" but not "Hello wonderful World" - // @ slop = 1 will math "Hello World" and/or "Hello wonderful World" - // Note: this value is for implicit phrase searching(without double quotes) - slop = 0 + minSize = 14 + maxSize = 32 + limit = 20 - // The concept of query slop is similar to phrase.slop but it applies to the explicit phrase queries from the user and to match documents instead of boosting. - // Also if the user uses double quotes in the search term, then - // the query slop value is used and - // the result contains only the documents with those phrase. - // see https://lucene.apache.org/solr/guide/7_0/the-extended-dismax-query-parser.html http://lucene.472066.n3.nabble.com/Query-slop-vs-phrase-slop-td1637041.html - // Note: this value is for explicit "phrase searching"(with double quotes) - querySlop = 0 - } + select { + SELECT = keywords as search_term, count(*) as hits + FROM = tx_meilisearch_statistics + ADD_WHERE = AND num_found != 0 + GROUP_BY = keywords + ORDER_BY = hits DESC, search_term ASC + checkRootPageId = 1 + checkLanguage = 1 + } - // bigram phrase functionality is similar to the Ngram filters, difference is that - // filters strip down the words to chars(char combinations) - // bigraming phrases strip down the sentence to the two-word combinations(phrases) - // e.g. "bigraming phrases strip down the sentence to phrases" generates following - // "bigraming phrases" - // "phrases strip" - // "strip down" - // "down the" - // "the sentence" - // "sentence to" - // "to phrases" - // Note: The triplets phrases will be stripped down to two two-word phrases - bigramPhrase = 0 - bigramPhrase { - fields = content^10.0, title^10.0, tagsH1^10.0, tagsH2H3^10.0, tagsH4H5H6^10.0, tagsInline^10.0, description^10.0, abstract^10.0, subtitle^10.0, navtitle^10.0 - slop = 0 - } + // cache lifetime in seconds (default is 86400s = 24h) + cacheLifetime = 86400 + } - // Please see bigram phrases. Difference to bi is tri, which means building of triplets phrases. - // e.g. "trigraming phrases strip down the sentence to triplets phrases" generates following triplets - // "trigraming phrases strip" - // "phrases strip down" - // "strip down the" - // "down the sentence" - // "the sentence to" - // "sentence to triplets" - // "to triplets phrases" - trigramPhrase = 0 - trigramPhrase { - fields = content^10.0, title^10.0, tagsH1^10.0, tagsH2H3^10.0, tagsH4H5H6^10.0, tagsInline^10.0, description^10.0, abstract^10.0, subtitle^10.0, navtitle^10.0 - slop = 0 - } - } + sorting = 0 + sorting { + defaultOrder = asc - results { - resultsHighlighting = 0 - resultsHighlighting { - highlightFields = content - fragmentSize = 200 - fragmentSeparator = [...] - - wrap = | - } - siteHighlighting = 0 - - resultsPerPage = {$plugin.tx_meilisearch.search.results.resultsPerPage} - resultsPerPageSwitchOptions = 10, 25, 50 - - showDocumentScoreAnalysis = 0 - } - - spellchecking = 0 - spellchecking { - wrap = |
###LLL:didYouMean### |
| - searchUsingSpellCheckerSuggestion = 0 - numberOfSuggestionsToTry = 1 - } - - lastSearches = 0 - lastSearches { - limit = 10 - // tracking mode "user" or "global" - mode = user - } - - frequentSearches = 0 - frequentSearches { - useLowercaseKeywords = 0 - - minSize = 14 - maxSize = 32 - limit = 20 - - select { - SELECT = keywords as search_term, count(*) as hits - FROM = tx_meilisearch_statistics - ADD_WHERE = AND num_found != 0 - GROUP_BY = keywords - ORDER_BY = hits DESC, search_term ASC - checkRootPageId = 1 - checkLanguage = 1 - } - - // cache lifetime in seconds (default is 86400s = 24h) - cacheLifetime = 86400 - } - - sorting = 0 - sorting { - defaultOrder = asc - - options { - relevance { - field = relevance - label = Relevance - } - - title { - field = sortTitle - label = Title - } - - type { - field = type - label = Type - } - - author { - field = sortAuthor - label = Author - } - - created { - field = created - label = Creation Date - } - } - } - - faceting = 0 - faceting { - minimumCount = 1 - sortBy = count - limit = 10 - showEmptyFacets = 0 - keepAllFacetsOnSelection = 0 - - facetLinkUrlParameters = - - facets { - type { - label = Content Type - field = type - } - } - - showAllLink.wrap =
  • |
  • - } - - elevation = 0 - elevation { - markElevatedResults = 1 - forceElevation = 1 - } - - variants = 0 - variants { - expand = 1 - // variantField needs to be a string or a numeric field - variantField = variantId - limit = 10 - } - } - - suggest = 0 - suggest { - numberOfSuggestions = 10 - suggestField = spell - forceHttps = 0 - showTopResults = 1 - numberOfTopResults = 5 - } - - statistics = 0 - statistics { - anonymizeIP = 1 - } - - view { - pluginNamespace = tx_meilisearch - - templateRootPaths { - 0 = EXT:meilisearch/Resources/Private/Templates/ - 10 = {$plugin.tx_meilisearch.view.templateRootPath} - } - partialRootPaths { - 0 = EXT:meilisearch/Resources/Private/Partials/ - 10 = {$plugin.tx_meilisearch.view.partialRootPath} - } - layoutRootPaths { - 0 = EXT:meilisearch/Resources/Private/Layouts/ - 10 = {$plugin.tx_meilisearch.view.layoutRootPath} - } - - // By convention the templates is loaded from EXT:meilisearch/Resources/Private/Templates/Frontend/Search/(ActionName).html - // If you want to define a different entry template, you can do this here to overwrite the conventional default template - // if you want to use FLUID fallbacks you can just configure the template name, otherwise you could also use a full reference EXT:/.../ - // The templates that you configure in availableTemplate can be used in the flexform by the editor to select a template for the concrete plugin instance. - templateFiles { - // results = Results - // results.availableTemplates { - // default { - // label = Default Searchresults Template - // file = Results - // } - // } - // form = Form - // form.availableTemplates { - // default { - // label = Default Searchform Template - // file = Form - // } - // } - // frequentSearched = FrequentlySearched + options { + relevance { + field = relevance + label = Relevance } - } - logging { - exceptions = 1 - debugOutput = 0 + title { + field = sortTitle + label = Title + } - indexing { - indexQueueInitialization = 0 - missingTypo3SearchMarkers = 1 - pageIndexed = 0 + type { + field = type + label = Type + } - queue { - pages = 0 - } - } + author { + field = sortAuthor + label = Author + } - query { - filters = 0 - searchWords = 0 - queryString = 0 - rawPost = 0 - rawGet = 0 - rawDelete = 0 - } - } + created { + field = created + label = Creation Date + } + } + } - features { - requireCHashArgumentForActionArguments = 0 - useRawDocuments = 1 - } + faceting = 0 + faceting { + minimumCount = 1 + sortBy = count + limit = 10 + showEmptyFacets = 0 + keepAllFacetsOnSelection = 0 + + facetLinkUrlParameters = + + facets { + type { + label = Content Type + field = type + } + } + + showAllLink.wrap =
  • |
  • + } + + elevation = 0 + elevation { + markElevatedResults = 1 + forceElevation = 1 + } + + variants = 0 + variants { + expand = 1 + // variantField needs to be a string or a numeric field + variantField = variantId + limit = 10 + } + } + + suggest = 0 + suggest { + numberOfSuggestions = 10 + suggestField = spell + forceHttps = 0 + showTopResults = 1 + numberOfTopResults = 5 + } + + statistics = 0 + statistics { + anonymizeIP = 1 + } + + view { + pluginNamespace = tx_meilisearch + + templateRootPaths { + 0 = EXT:meilisearch/Resources/Private/Templates/ + 10 = {$plugin.tx_meilisearch.view.templateRootPath} + } + + partialRootPaths { + 0 = EXT:meilisearch/Resources/Private/Partials/ + 10 = {$plugin.tx_meilisearch.view.partialRootPath} + } + + layoutRootPaths { + 0 = EXT:meilisearch/Resources/Private/Layouts/ + 10 = {$plugin.tx_meilisearch.view.layoutRootPath} + } + + // By convention the templates is loaded from EXT:meilisearch/Resources/Private/Templates/Frontend/Search/(ActionName).html + // If you want to define a different entry template, you can do this here to overwrite the conventional default template + // if you want to use FLUID fallbacks you can just configure the template name, otherwise you could also use a full reference EXT:/.../ + // The templates that you configure in availableTemplate can be used in the flexform by the editor to select a template for the concrete plugin instance. + templateFiles { + // results = Results + // results.availableTemplates { + // default { + // label = Default Searchresults Template + // file = Results + // } + // } + // form = Form + // form.availableTemplates { + // default { + // label = Default Searchform Template + // file = Form + // } + // } + // frequentSearched = FrequentlySearched + } + } + + logging { + exceptions = 1 + debugOutput = 0 + + indexing { + indexQueueInitialization = 0 + missingTypo3SearchMarkers = 1 + pageIndexed = 0 + + queue { + pages = 0 + } + } + + query { + filters = 0 + searchWords = 0 + queryString = 0 + rawPost = 0 + rawGet = 0 + rawDelete = 0 + } + } + + features { + requireCHashArgumentForActionArguments = 0 + useRawDocuments = 1 + } } # Provide typoscript libraries -lib.solr_extbase_bootstrap = USER -lib.solr_extbase_bootstrap { - userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run - vendorName = ApacheSolrForTypo3 - extensionName = Solr - settings < plugin.tx_meilisearch.settings - persistence < plugin.tx_meilisearch.persistence - view < plugin.tx_meilisearch.view +lib.meilisearch_extbase_bootstrap = USER +lib.meilisearch_extbase_bootstrap { + userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run + vendorName = WapplerSystems + extensionName = Meilisearch + settings < plugin.tx_meilisearch.settings + persistence < plugin.tx_meilisearch.persistence + view < plugin.tx_meilisearch.view } -plugin.tx_meilisearch_PiResults_Results < lib.solr_extbase_bootstrap +plugin.tx_meilisearch_PiResults_Results < lib.meilisearch_extbase_bootstrap plugin.tx_meilisearch_PiResults_Results = USER_INT plugin.tx_meilisearch_PiResults_Results { - pluginName = pi_results - switchableControllerActions { - Search { - 1 = results - 2 = form - } - } + pluginName = pi_results + switchableControllerActions { + Search { + 1 = results + 2 = form + } + } } -plugin.tx_meilisearch_PiSearch_Search < lib.solr_extbase_bootstrap +plugin.tx_meilisearch_PiSearch_Search < lib.meilisearch_extbase_bootstrap plugin.tx_meilisearch_PiSearch_Search { - pluginName = pi_search - switchableControllerActions { - Search { - 1 = form - } - } + pluginName = pi_search + switchableControllerActions { + Search { + 1 = form + } + } } -plugin.tx_meilisearch_PiFrequentSearches_FrequentSearches < lib.solr_extbase_bootstrap +plugin.tx_meilisearch_PiFrequentSearches_FrequentSearches < lib.meilisearch_extbase_bootstrap plugin.tx_meilisearch_PiFrequentSearches_FrequentSearches { - pluginName = pi_frequentlySearched - switchableControllerActions { - Search { - 1 = frequentlySearched - } - } + pluginName = pi_frequentlySearched + switchableControllerActions { + Search { + 1 = frequentlySearched + } + } } diff --git a/Configuration/TypoScript/StyleSheets/setup.typoscript b/Configuration/TypoScript/StyleSheets/setup.typoscript index 2dc045a..ade069b 100644 --- a/Configuration/TypoScript/StyleSheets/setup.typoscript +++ b/Configuration/TypoScript/StyleSheets/setup.typoscript @@ -1,4 +1,4 @@ page.includeCSS { search = EXT:meilisearch/Resources/Public/StyleSheets/Frontend/results.css - solr-loader = EXT:meilisearch/Resources/Public/StyleSheets/Frontend/loader.css + meilisearch-loader = EXT:meilisearch/Resources/Public/StyleSheets/Frontend/loader.css } diff --git a/README.md b/README.md index 1ec7784..d5757ca 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,20 @@ -# Apache Solr for TYPO3 CMS +# Meilisearch for TYPO3 CMS -[![Build Status](https://travis-ci.com/TYPO3-Solr/ext-solr.svg?branch=master)](https://travis-ci.com/TYPO3-Solr/ext-solr) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/?branch=master) -[![Code Coverage](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/?branch=master) -[![Latest Stable Version](https://poser.pugx.org/apache-solr-for-typo3/solr/v/stable)](https://packagist.org/packages/apache-solr-for-typo3/solr) -[![Latest Unstable Version](https://poser.pugx.org/apache-solr-for-typo3/solr/v/unstable)](https://packagist.org/packages/apache-solr-for-typo3/solr) -[![License](https://poser.pugx.org/apache-solr-for-typo3/solr/license)](https://packagist.org/packages/apache-solr-for-typo3/solr) -[![Monthly Downloads](https://poser.pugx.org/apache-solr-for-typo3/solr/d/monthly)](https://packagist.org/packages/apache-solr-for-typo3/solr) +A TYPO3 extension that integrates the Meilisearch search server with TYPO3 CMS. -A TYPO3 extension that integrates the Apache Solr enterprise search server with TYPO3 CMS. - -The extension has initially been developed by dkd Internet Service GmbH and is now being continued as a community project. The version you find here is a version that does not contain all the features that have been implemented yet. These features can be obtained through add-ons for the extension. +The extension has initially been developed by WapplerSystems. The version you find here is a version that does not contain all the features that have been implemented yet. These features can be obtained through add-ons for the extension. In case you need access to the full feature set, please feel free to contact us for details. Things we are working on or got working already include the following: - Statistics -- An Indexing Queue to be independent from frontend rendering and adding content to Solr as soon as an editor creates a content element in the backend +- An Indexing Queue to be independent from frontend rendering and adding content to Meilisearch as soon as an editor creates a content element in the backend - Suggest / Autocomplete - More Like This - Several Reports - Advanced faceting features including hierarchical facets -- Backend Module for Solr administration +- Backend Module for Meilisearch administration - Results Grouping - Language Detection - Crawling of External non-TYPO3 Websites @@ -30,37 +22,30 @@ Things we are working on or got working already include the following: We're open for [contributions](./CONTRIBUTING.md) ! -Please find further information regarding Apache Solr and its related projects at the following links: +Please find further information regarding Meilisearch and its related projects at the following links: -- http://www.typo3-solr.com/ -- https://www.dkd.de/de/leistungen/enterprise-websites/enterprise-search/ -- https://github.com/TYPO3-Solr -- http://lucene.apache.org/ -- http://lucene.apache.org/solr/ -- http://tomcat.apache.org -- http://www.eclipse.org/jetty/ +- https://github.com/WapplerSystems/meilisearch +- https://www.meilisearch.com/ -To try out Apache Solr for TYPO3 visit [www.typo3-solr.com](http://www.typo3-solr.com) where we've set up a basic configuration. - -![dkd Internet Service GmbH](./Resources/Public/Images/dkd_logo.png) +To try out Meilisearch for TYPO3 visit [www.typo3-meilisearch.com](http://www.typo3-meilisearch.com) where we've set up a basic configuration. ## Documentation and Support - **Main Documentation:** - https://docs.typo3.org/p/apache-solr-for-typo3/solr/master/en-us/Index.html + https://docs.typo3.org/p/apache-meilisearch-for-typo3/meilisearch/master/en-us/Index.html - **Slack Channel:** - https://typo3.slack.com/messages/ext-solr/ + https://typo3.slack.com/messages/ext-meilisearch/ (request your invite for Slack here: https://forger.typo3.org/slack) - **Mailinglist:** - http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-solr + http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-meilisearch ## Contributions diff --git a/Resources/Css/Report/index.css b/Resources/Css/Report/index.css index 940f355..8d5f105 100644 --- a/Resources/Css/Report/index.css +++ b/Resources/Css/Report/index.css @@ -20,10 +20,10 @@ table.tx_meilisearch_index_list { color: #fff; } -#tx-solr-connection { +#tx-meilisearch-connection { float: right; } -#tx-solr-connection select { +#tx-meilisearch-connection select { max-width: 300px; } diff --git a/Resources/Private/Install/install-solr.sh b/Resources/Private/Install/install-solr.sh index 222ec7a..5f50c16 100755 --- a/Resources/Private/Install/install-solr.sh +++ b/Resources/Private/Install/install-solr.sh @@ -7,9 +7,9 @@ EXTENSION_ROOTPATH="$SCRIPTPATH/../../../" SOLR_VERSION=8.8.1 JAVA_VERSION=11 -SOLR_INSTALL_DIR="/opt/solr" +SOLR_INSTALL_DIR="/opt/meilisearch" SOLR_HOST="127.0.0.1" -SOLR_PORT=8983 +SOLR_PORT=7700 TESTING=0 APACHE_MIRROR="http://mirror.dkd.de/apache/" @@ -125,9 +125,9 @@ cecho "# - Upgrade possibilities #" $re cecho "# #" $red cecho "####################################################################" $red -cecho "Starting installation of Apache Solr with the following settings:" $green +cecho "Starting installation of Meilisearch with the following settings:" $green cecho "Install Mode: ${INSTALL_MODE} " $green -cecho "Solr Version: ${SOLR_VERSION} " $green +cecho "Meilisearch Version: ${SOLR_VERSION} " $green cecho "Installation Path: ${SOLR_INSTALL_DIR} " $green cecho "Port: ${SOLR_PORT} " $green @@ -204,7 +204,7 @@ then cecho "Please install all missing requirements or fix any other errors listed above and try again." $red exit 1 else - cecho "All requirements met, starting to install Solr." $green + cecho "All requirements met, starting to install Meilisearch." $green fi # ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- @@ -212,49 +212,49 @@ fi mkdir $SOLR_INSTALL_DIR cd $SOLR_INSTALL_DIR -cecho "Getting Apache Solr $SOLR_VERSION" $green +cecho "Getting Meilisearch $SOLR_VERSION" $green # download to downloads folder to be able to cache the file there -if [ ! -f downloads/solr-$SOLR_VERSION.tgz ]; then +if [ ! -f downloads/meilisearch-$SOLR_VERSION.tgz ]; then cecho "Starting download" $green mkdir downloads cd downloads - apachedownload lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz + apachedownload lucene/meilisearch/$SOLR_VERSION/meilisearch-$SOLR_VERSION.tgz cd .. else cecho "Restore from cache" $green fi -cecho "Extracting downloaded solr $SOLR_VERSION" $green -tar -C $SOLR_INSTALL_DIR --extract --file "$SOLR_INSTALL_DIR/downloads/solr-$SOLR_VERSION.tgz" --strip-components=1 +cecho "Extracting downloaded meilisearch $SOLR_VERSION" $green +tar -C $SOLR_INSTALL_DIR --extract --file "$SOLR_INSTALL_DIR/downloads/meilisearch-$SOLR_VERSION.tgz" --strip-components=1 -cecho "Adjusting solr configuration" $green -sed -i -e "s/#SOLR_PORT=8983/SOLR_PORT=$SOLR_PORT/" "$SOLR_INSTALL_DIR/bin/solr.in.sh" -sed -i -e "s/#SOLR_HOST=\"192.168.1.1\"/SOLR_HOST=\"$SOLR_HOST\"/" "$SOLR_INSTALL_DIR/bin/solr.in.sh" -sed -i -e '/-Dsolr.clustering.enabled=true/ a SOLR_OPTS="$SOLR_OPTS -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60 -Djetty.host=$SOLR_HOST"' "$SOLR_INSTALL_DIR/bin/solr.in.sh" +cecho "Adjusting meilisearch configuration" $green +sed -i -e "s/#SOLR_PORT=7700/SOLR_PORT=$SOLR_PORT/" "$SOLR_INSTALL_DIR/bin/meilisearch.in.sh" +sed -i -e "s/#SOLR_HOST=\"192.168.1.1\"/SOLR_HOST=\"$SOLR_HOST\"/" "$SOLR_INSTALL_DIR/bin/meilisearch.in.sh" +sed -i -e '/-Dmeilisearch.clustering.enabled=true/ a SOLR_OPTS="$SOLR_OPTS -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60 -Djetty.host=$SOLR_HOST"' "$SOLR_INSTALL_DIR/bin/meilisearch.in.sh" cecho "Remove default configsets" $green -rm -fR ${SOLR_INSTALL_DIR}/server/solr/configsets +rm -fR ${SOLR_INSTALL_DIR}/server/meilisearch/configsets cecho "Copy configsets" $green -cp -r ${EXTENSION_ROOTPATH}/Resources/Private/Solr/configsets ${SOLR_INSTALL_DIR}/server/solr +cp -r ${EXTENSION_ROOTPATH}/Resources/Private/Meilisearch/configsets ${SOLR_INSTALL_DIR}/server/meilisearch -cecho "Copy copy solr.xml" $green -cp ${EXTENSION_ROOTPATH}/Resources/Private/Solr/solr.xml ${SOLR_INSTALL_DIR}/server/solr/solr.xml +cecho "Copy copy meilisearch.xml" $green +cp ${EXTENSION_ROOTPATH}/Resources/Private/Meilisearch/meilisearch.xml ${SOLR_INSTALL_DIR}/server/meilisearch/meilisearch.xml cecho "Create default cores" $green -cp -r ${EXTENSION_ROOTPATH}/Resources/Private/Solr/cores ${SOLR_INSTALL_DIR}/server/solr +cp -r ${EXTENSION_ROOTPATH}/Resources/Private/Meilisearch/cores ${SOLR_INSTALL_DIR}/server/meilisearch cecho "Setting environment" $green -source $SOLR_INSTALL_DIR/bin/solr.in.sh +source $SOLR_INSTALL_DIR/bin/meilisearch.in.sh -cecho "Starting solr" $green -$SOLR_INSTALL_DIR/bin/solr start +cecho "Starting meilisearch" $green +$SOLR_INSTALL_DIR/bin/meilisearch start if [ $TESTING -eq "1" ]; then cecho "Keeping download to cache it for next build" $green else cecho "Cleanup download" green - rm $SOLR_INSTALL_DIR/downloads/solr-$SOLR_VERSION.tgz + rm $SOLR_INSTALL_DIR/downloads/meilisearch-$SOLR_VERSION.tgz fi diff --git a/Resources/Private/Language/cn.locallang.xlf b/Resources/Private/Language/cn.locallang.xlf index 0538b58..ec23f42 100644 --- a/Resources/Private/Language/cn.locallang.xlf +++ b/Resources/Private/Language/cn.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -130,4 +130,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf index 1cf1463..4df6322 100644 --- a/Resources/Private/Language/de.locallang.xlf +++ b/Resources/Private/Language/de.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -9,16 +9,16 @@ Re-Indexierung der Seite erzwingen - Purges the Solr Index and initializes the Index Queue of a site. - Leert den solr index und initialisiert die Index Queue einer Seite. + Purges the Meilisearch Index and initializes the Index Queue of a site. + Leert den meilisearch index und initialisiert die Index Queue einer Seite. Index Queue Worker Index Queue Worker - Processes the items in the Index Queue and sends them to Solr. - Verarbeitet einen Item in der Index Queue und sendet ihn an den Solr Server. + Processes the items in the Index Queue and sends them to Meilisearch. + Verarbeitet einen Item in der Index Queue und sendet ihn an den Meilisearch Server. Number of documents to index @@ -29,20 +29,20 @@ Forced webroot (Nur notwendig wenn webroot von PATH_site abweicht) - Solr Host - Solr host + Meilisearch Host + Meilisearch host - Solr Port - Solr Port + Meilisearch Port + Meilisearch Port - Solr Path - Solr Pfad + Meilisearch Path + Meilisearch Pfad - Solr Server - Solr Server + Meilisearch Server + Meilisearch Server Site @@ -54,15 +54,15 @@ - Optimiert den Solr Index + Optimiert den Meilisearch Index - Commit Solr index + Commit Meilisearch index - Macht Änderungen am Solr Index sichtbar + Macht Änderungen am Meilisearch Index sichtbar @@ -215,4 +215,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/dk.locallang.xlf b/Resources/Private/Language/dk.locallang.xlf index ea8c1f8..c24102c 100644 --- a/Resources/Private/Language/dk.locallang.xlf +++ b/Resources/Private/Language/dk.locallang.xlf @@ -1,24 +1,24 @@ - +
    - Apache Solr Index - Apache Solr Index + Meilisearch Index + Meilisearch Index View the number of documents and fields in your index Se antallet af dokumenter og felter i dit index - Apache Solr Statistics - Apache Solr Statistik + Meilisearch Statistics + Meilisearch Statistik - Provides several Solr usage statistics - Viser adskillige Solr-anvendelsesstatistikker + Provides several Meilisearch usage statistics + Viser adskillige Meilisearch-anvendelsesstatistikker @@ -162,4 +162,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/fr.locallang.xlf b/Resources/Private/Language/fr.locallang.xlf index ef219ee..444b6db 100644 --- a/Resources/Private/Language/fr.locallang.xlf +++ b/Resources/Private/Language/fr.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -19,20 +19,20 @@ - Apache Solr Index - Index d'Apache Solr + Meilisearch Index + Index d'Meilisearch View the number of documents and fields in your index Visualisez le nombre de documents et de champs de votre index - Apache Solr Statistics - Statistiques d'Apache Solr + Meilisearch Statistics + Statistiques d'Meilisearch - Provides several Solr usage statistics - Fourni plusieurs statistiques d'usage de Solr + Provides several Meilisearch usage statistics + Fourni plusieurs statistiques d'usage de Meilisearch @@ -41,36 +41,36 @@ Force la réindexation d'un site - Purges the Solr Index and initializes the Index Queue of a site. - Purge l'index de Solr et initialise la file d'attente d'indexation d'un site. + Purges the Meilisearch Index and initializes the Index Queue of a site. + Purge l'index de Meilisearch et initialise la file d'attente d'indexation d'un site. Index Queue Worker Tâche de traitement de la file d'indexation. - Processes the items in the Index Queue and sends them to Solr. - Traite les élément de la file d'attente et les envoie à Solr. + Processes the items in the Index Queue and sends them to Meilisearch. + Traite les élément de la file d'attente et les envoie à Meilisearch. Number of documents to index Nombre de documents à indexer - Solr Host - Hôte Solr + Meilisearch Host + Hôte Meilisearch - Solr Port - Port Solr + Meilisearch Port + Port Meilisearch - Solr Path - URI Solr + Meilisearch Path + URI Meilisearch - Solr Server - Serveur Solr + Meilisearch Server + Serveur Meilisearch Site @@ -219,4 +219,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/it.locallang.xlf b/Resources/Private/Language/it.locallang.xlf index d1a2b69..00f2967 100644 --- a/Resources/Private/Language/it.locallang.xlf +++ b/Resources/Private/Language/it.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -131,4 +131,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/jp.locallang.xlf b/Resources/Private/Language/jp.locallang.xlf index 92eb0bf..182c37b 100644 --- a/Resources/Private/Language/jp.locallang.xlf +++ b/Resources/Private/Language/jp.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -130,4 +130,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/kr.locallang.xlf b/Resources/Private/Language/kr.locallang.xlf index c819c32..fae3d02 100644 --- a/Resources/Private/Language/kr.locallang.xlf +++ b/Resources/Private/Language/kr.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -130,4 +130,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/locallang.xlf b/Resources/Private/Language/locallang.xlf index 423d8af..ccd8373 100644 --- a/Resources/Private/Language/locallang.xlf +++ b/Resources/Private/Language/locallang.xlf @@ -6,24 +6,24 @@
    - - Initialize Solr connections + + Initialize Meilisearch connections - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. + + The Index Administration Module is responsible for emptying the cores(deleting documents) on Meilisearch Server and index queues in TYPO3 CMS. - + Index emptied for Site "%s" (%s). - + Index Queue emptied for Site "%s". - + An error occurred while trying to delete documents from the index: %s @@ -66,10 +66,10 @@ - Apache Solr Search Administration + Meilisearch Search Administration - Allows you to manage Apache Solr from TYPO3.<br /><em>Access for 'admin' users only!</em> + Allows you to manage Meilisearch from TYPO3.<br /><em>Access for 'admin' users only!</em> Search @@ -77,16 +77,16 @@ - Apache Solr Index + Meilisearch Index View the number of documents and fields in your index - Apache Solr Statistics + Meilisearch Statistics - Provides several Solr usage statistics + Provides several Meilisearch usage statistics @@ -94,13 +94,13 @@ Force Re-Indexing of a site - Purges the Solr Index and initializes the Index Queue of a site. + Purges the Meilisearch Index and initializes the Index Queue of a site. Index Queue Worker - Processes the items in the Index Queue and sends them to Solr. + Processes the items in the Index Queue and sends them to Meilisearch. Number of documents to index @@ -109,16 +109,16 @@ Forced webroot (only needed when webroot is not PATH_site) - Solr Host + Meilisearch Host - Solr Port + Meilisearch Port - Solr Path + Meilisearch Path - Solr Server + Meilisearch Server Site @@ -225,98 +225,98 @@ Top Results - + The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - + Reset errors - + Indexing Errors - + ID - + Item Type - + Item UID - + Show error - + An error occurred while indexing manual from the backend. - + An error occurred while resetting the error log in the index queue. - + Single item was not requeued. - + No indexing configurations selected. - + Initialized indexing configurations: %s - + Index Queue initialized - + Index Queue not initialized - + All errors have been reset. - + Indexing from the backend was successfully finished. - + Single item was successfully marked for reindexing. - + Index Queue - + Manual Indexing - + Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - + Errors - + Indexing Progress - + Indexed - + Pending - + Index Queue Initialization - + Index Queue Status - + Clear Index Queue - + Go back - + No valid queue item passed to show the error information! - + Error details for queue item - + Index now @@ -331,28 +331,28 @@ Search: Form only - + Phrase - + Number of Queries - + Number of Results (Average) - + Percentage - + No records found. Did you enabled 'plugin.tx_meilisearch.statistics = 1' in the typoscript configuration of your site? - + Top 5 Search Phrases - + Top 5 Search Phrases Without Hits - + Search Phrase Statistics diff --git a/Resources/Private/Language/locallang_mod.xlf b/Resources/Private/Language/locallang_mod.xlf index 3eacb24..dc8f4bd 100644 --- a/Resources/Private/Language/locallang_mod.xlf +++ b/Resources/Private/Language/locallang_mod.xlf @@ -1,17 +1,17 @@ - +
    - Apache Solr + Meilisearch - Administrate solr + Administrate meilisearch - This module provides submodules to maintain solr functionality. + This module provides submodules to maintain meilisearch functionality. - \ No newline at end of file + diff --git a/Resources/Private/Language/locallang_mod_coreoptimize.xlf b/Resources/Private/Language/locallang_mod_coreoptimize.xlf index ee6c84e..ba8ef19 100644 --- a/Resources/Private/Language/locallang_mod_coreoptimize.xlf +++ b/Resources/Private/Language/locallang_mod_coreoptimize.xlf @@ -1,6 +1,6 @@ - +
    @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/locallang_mod_indexadmin.xlf b/Resources/Private/Language/locallang_mod_indexadmin.xlf index 2ba7d42..42e1e6b 100644 --- a/Resources/Private/Language/locallang_mod_indexadmin.xlf +++ b/Resources/Private/Language/locallang_mod_indexadmin.xlf @@ -1,17 +1,17 @@ - +
    Index Administration - Administrate your solr system + Administrate your meilisearch system - This module allows you to do admin operations on the index (e.g. clear the index queue or clean the solr server). + This module allows you to do admin operations on the index (e.g. clear the index queue or clean the meilisearch server). - \ No newline at end of file + diff --git a/Resources/Private/Language/locallang_mod_indexqueue.xlf b/Resources/Private/Language/locallang_mod_indexqueue.xlf index c95ab3c..6531d25 100644 --- a/Resources/Private/Language/locallang_mod_indexqueue.xlf +++ b/Resources/Private/Language/locallang_mod_indexqueue.xlf @@ -1,6 +1,6 @@ - +
    @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/locallang_mod_info.xlf b/Resources/Private/Language/locallang_mod_info.xlf index ff9ddb3..a457560 100644 --- a/Resources/Private/Language/locallang_mod_info.xlf +++ b/Resources/Private/Language/locallang_mod_info.xlf @@ -1,6 +1,6 @@ - +
    @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/nl.locallang.xlf b/Resources/Private/Language/nl.locallang.xlf index 03ec5c5..ae562d8 100644 --- a/Resources/Private/Language/nl.locallang.xlf +++ b/Resources/Private/Language/nl.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -9,16 +9,16 @@ Forceer herindexering van een website - Purges the Solr Index and initializes the Index Queue of a site. - Leegt de Solr index en initialiseert de Index Wachtrij van een website. + Purges the Meilisearch Index and initializes the Index Queue of a site. + Leegt de Meilisearch index en initialiseert de Index Wachtrij van een website. Index Queue Worker Index Wachtrij Taak - Processes the items in the Index Queue and sends them to Solr. - Verwerkt de documenten in de Index Wachtrij en verstuurt deze naar Solr. + Processes the items in the Index Queue and sends them to Meilisearch. + Verwerkt de documenten in de Index Wachtrij en verstuurt deze naar Meilisearch. Number of documents to index @@ -29,20 +29,20 @@ Geforceerde webroot (alleen nodig als de webroot anders is dan PATH_site) - Solr Host - Solr host + Meilisearch Host + Meilisearch host - Solr Port - Solr poort + Meilisearch Port + Meilisearch poort - Solr Path - Solr pad + Meilisearch Path + Meilisearch pad - Solr Server - Solr server + Meilisearch Server + Meilisearch server Site @@ -50,19 +50,19 @@ - Optimaliseer Solr index + Optimaliseer Meilisearch index - Voert een OPTIMIZE commando uit op de Solr index. Hoort een keer per dag uitgevoerd te worden voor websites met lage activiteit. Website met hoge activiteit kunnen dit vaker uitvoeren. Pas op, deze taak kan een aantal seconden in beslag nemen bij grote indexes. + Voert een OPTIMIZE commando uit op de Meilisearch index. Hoort een keer per dag uitgevoerd te worden voor websites met lage activiteit. Website met hoge activiteit kunnen dit vaker uitvoeren. Pas op, deze taak kan een aantal seconden in beslag nemen bij grote indexes. - Commit Solr index + Commit Meilisearch index - Voert een COMMIT commando uit op de Solr index. Kan tussen de een keer per minuut en ieder uur uitgevoerd worden. Deze taak hoort korter te duren dan het OPTIMIZE commando welke ook een COMMIT uitvoert voor het OPTIMIZE commando. + Voert een COMMIT commando uit op de Meilisearch index. Kan tussen de een keer per minuut en ieder uur uitgevoerd worden. Deze taak hoort korter te duren dan het OPTIMIZE commando welke ook een COMMIT uitvoert voor het OPTIMIZE commando. @@ -192,4 +192,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Language/pl.locallang.xlf b/Resources/Private/Language/pl.locallang.xlf index 2e0e9fc..ef658a7 100644 --- a/Resources/Private/Language/pl.locallang.xlf +++ b/Resources/Private/Language/pl.locallang.xlf @@ -1,6 +1,6 @@ - +
    @@ -130,4 +130,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Partials/Backend/ApacheSolr/SingleDocument.html b/Resources/Private/Partials/Backend/ApacheSolr/SingleDocument.html index 7c3009b..e69974a 100644 --- a/Resources/Private/Partials/Backend/ApacheSolr/SingleDocument.html +++ b/Resources/Private/Partials/Backend/ApacheSolr/SingleDocument.html @@ -1,4 +1,4 @@ -{namespace solr=WapplerSystems\Meilisearch\ViewHelpers\Backend} +{namespace meilisearch=WapplerSystems\Meilisearch\ViewHelpers\Backend}
    @@ -27,7 +27,7 @@ {tableRowFiledName} - + {tableRowValue} @@ -36,7 +36,7 @@ - + diff --git a/Resources/Private/Partials/Backend/NoSiteAvailable.html b/Resources/Private/Partials/Backend/NoSiteAvailable.html index 5246a80..b22900b 100644 --- a/Resources/Private/Partials/Backend/NoSiteAvailable.html +++ b/Resources/Private/Partials/Backend/NoSiteAvailable.html @@ -1,32 +1,32 @@ -

    Please choose other page in the page tree, which has solr configured.

    +

    Please choose other page in the page tree, which has meilisearch configured.

    When all of these steps are done check this module again.

    - +

    Please check the following:

    -

    If you want to use solr with the TYPO3 site configuration:

    +

    If you want to use meilisearch with the TYPO3 site configuration:

    • Your site has a page, marked as root page.
    • Configure EXT:meilisearch with the TYPO3 site module.
    • -
    • Check the reports module if any solr error is shown.
    • +
    • Check the reports module if any meilisearch error is shown.

    OR


    -

    If you want to use solr with the legacy configuration (domain record and typoscript of EXTCONF setup):

    +

    If you want to use meilisearch with the legacy configuration (domain record and typoscript of EXTCONF setup):

      -
    • Your site has a domain configured, please create a domain record on the root page, or configure it in "TYPO3_CONF_VARS|EXTCONF|solr|sites|###rootPageId###|domains"
    • +
    • Your site has a domain configured, please create a domain record on the root page, or configure it in "TYPO3_CONF_VARS|EXTCONF|meilisearch|sites|###rootPageId###|domains"
    • Your site has a page, marked as root page.
    • -
    • Your page has included the solr typoscript configuration.
    • -
    • You've initialized the solr connections in the backend with the menu item "Initialize solr connections"
    • +
    • Your page has included the meilisearch typoscript configuration.
    • +
    • You've initialized the meilisearch connections in the backend with the menu item "Initialize meilisearch connections"
    • Afterwards please check if the reports module is showing any errors.
    diff --git a/Resources/Private/Partials/Facets/Default.html b/Resources/Private/Partials/Facets/Default.html index 1bc5ce6..48ba9bf 100644 --- a/Resources/Private/Partials/Facets/Default.html +++ b/Resources/Private/Partials/Facets/Default.html @@ -1,6 +1,6 @@ diff --git a/Resources/Private/Partials/Facets/Hierarchy.html b/Resources/Private/Partials/Facets/Hierarchy.html index d64281b..e4928c6 100644 --- a/Resources/Private/Partials/Facets/Hierarchy.html +++ b/Resources/Private/Partials/Facets/Hierarchy.html @@ -1,13 +1,13 @@ -
    - {childNode.label} +
    + {childNode.label} {childNode.documentCount}
    @@ -27,4 +27,4 @@
    - \ No newline at end of file + diff --git a/Resources/Private/Partials/Facets/Options.html b/Resources/Private/Partials/Facets/Options.html index 0e60eca..af35fd0 100644 --- a/Resources/Private/Partials/Facets/Options.html +++ b/Resources/Private/Partials/Facets/Options.html @@ -1,6 +1,6 @@ @@ -14,14 +14,14 @@
    -
    - {option.label} {option.documentCount} +
    + {option.label} {option.documentCount}
    diff --git a/Resources/Private/Partials/Facets/OptionsFiltered.html b/Resources/Private/Partials/Facets/OptionsFiltered.html index f2d134d..5e57205 100644 --- a/Resources/Private/Partials/Facets/OptionsFiltered.html +++ b/Resources/Private/Partials/Facets/OptionsFiltered.html @@ -1,6 +1,6 @@ @@ -20,14 +20,14 @@
    -
    - {option.label} {option.documentCount} +
    + {option.label} {option.documentCount}
    diff --git a/Resources/Private/Partials/Facets/OptionsPrefixGrouped.html b/Resources/Private/Partials/Facets/OptionsPrefixGrouped.html index fc7f5cd..91d2009 100644 --- a/Resources/Private/Partials/Facets/OptionsPrefixGrouped.html +++ b/Resources/Private/Partials/Facets/OptionsPrefixGrouped.html @@ -1,6 +1,6 @@ @@ -31,7 +31,7 @@
    - {option.label} + {option.label} {option.documentCount} diff --git a/Resources/Private/Partials/Facets/OptionsSinglemode.html b/Resources/Private/Partials/Facets/OptionsSinglemode.html index df5b7d7..88e55f1 100644 --- a/Resources/Private/Partials/Facets/OptionsSinglemode.html +++ b/Resources/Private/Partials/Facets/OptionsSinglemode.html @@ -1,6 +1,6 @@ @@ -13,14 +13,14 @@
    -
    - {option.label} ({option.documentCount}) +
    + {option.label} ({option.documentCount})
    diff --git a/Resources/Private/Partials/Facets/OptionsToggle.html b/Resources/Private/Partials/Facets/OptionsToggle.html index 450790a..e0770e5 100644 --- a/Resources/Private/Partials/Facets/OptionsToggle.html +++ b/Resources/Private/Partials/Facets/OptionsToggle.html @@ -1,6 +1,6 @@ @@ -15,14 +15,14 @@ -
    - {option.label} +
    + {option.label} {option.documentCount}
    -
    - {option.label} +
    + {option.label} {option.documentCount}
    @@ -31,8 +31,8 @@ diff --git a/Resources/Private/Partials/Facets/RangeDate.html b/Resources/Private/Partials/Facets/RangeDate.html index 5f08465..d2ccdb6 100644 --- a/Resources/Private/Partials/Facets/RangeDate.html +++ b/Resources/Private/Partials/Facets/RangeDate.html @@ -1,6 +1,6 @@ @@ -38,4 +38,4 @@
    - \ No newline at end of file + diff --git a/Resources/Private/Partials/Facets/RangeNumeric.html b/Resources/Private/Partials/Facets/RangeNumeric.html index f11a92a..da90979 100644 --- a/Resources/Private/Partials/Facets/RangeNumeric.html +++ b/Resources/Private/Partials/Facets/RangeNumeric.html @@ -1,6 +1,6 @@ @@ -33,4 +33,4 @@
    - \ No newline at end of file + diff --git a/Resources/Private/Partials/Facets/Rootline.html b/Resources/Private/Partials/Facets/Rootline.html index 0bb73a1..a26af7e 100644 --- a/Resources/Private/Partials/Facets/Rootline.html +++ b/Resources/Private/Partials/Facets/Rootline.html @@ -1,13 +1,13 @@ -
    - {childNode.label} +
    + {childNode.label} {childNode.documentCount}
    diff --git a/Resources/Private/Partials/Result/Document.html b/Resources/Private/Partials/Result/Document.html index 3c8b912..adaa694 100644 --- a/Resources/Private/Partials/Result/Document.html +++ b/Resources/Private/Partials/Result/Document.html @@ -1,6 +1,6 @@ + xmlns:s="http://typo3.org/ns/WapplerSystems/Meilisearch/ViewHelpers"> diff --git a/Resources/Private/Partials/Result/Facets.html b/Resources/Private/Partials/Result/Facets.html index 4d30560..2662c1d 100644 --- a/Resources/Private/Partials/Result/Facets.html +++ b/Resources/Private/Partials/Result/Facets.html @@ -1,12 +1,12 @@ + xmlns:s="http://typo3.org/ns/WapplerSystems/Meilisearch/ViewHelpers"> -
    +
    -
    +
    diff --git a/Resources/Private/Partials/Result/FacetsActive.html b/Resources/Private/Partials/Result/FacetsActive.html index ef13269..a6e828f 100644 --- a/Resources/Private/Partials/Result/FacetsActive.html +++ b/Resources/Private/Partials/Result/FacetsActive.html @@ -1,23 +1,23 @@ + xmlns:s="http://typo3.org/ns/WapplerSystems/Meilisearch/ViewHelpers"> -
    + - \ No newline at end of file + diff --git a/Resources/Private/Partials/Result/PerPage.html b/Resources/Private/Partials/Result/PerPage.html index 5e32743..84cd733 100644 --- a/Resources/Private/Partials/Result/PerPage.html +++ b/Resources/Private/Partials/Result/PerPage.html @@ -1,6 +1,6 @@ + xmlns:s="http://typo3.org/ns/WapplerSystems/Meilisearch/ViewHelpers">
    @@ -16,4 +16,4 @@
    -
    \ No newline at end of file + diff --git a/Resources/Private/Partials/Result/RelevanceBar.html b/Resources/Private/Partials/Result/RelevanceBar.html index a5b87e8..0bf3682 100644 --- a/Resources/Private/Partials/Result/RelevanceBar.html +++ b/Resources/Private/Partials/Result/RelevanceBar.html @@ -1,6 +1,6 @@ + xmlns:s="http://typo3.org/ns/WapplerSystems/Meilisearch/ViewHelpers"> @@ -15,4 +15,4 @@ - \ No newline at end of file + diff --git a/Resources/Private/Partials/Result/Sorting.html b/Resources/Private/Partials/Result/Sorting.html index 0cf7faf..70d258c 100644 --- a/Resources/Private/Partials/Result/Sorting.html +++ b/Resources/Private/Partials/Result/Sorting.html @@ -1,9 +1,9 @@ + xmlns:s="http://typo3.org/ns/WapplerSystems/Meilisearch/ViewHelpers"> -