Enterprise Search (Elastic Search) - Suchergebnis erweitern (Suggestion, Facet, Criteria) -> SuggestionFacet class not supported

Hallo zusammen,

ich bin am verzweifeln wegen der Shopware Suche bzw Enterprise Seach bzw Elastic Search.
Im Netz finde ich nichts passendes. Die Doku hilft einem auch nicht so wirklich weiter.

Info
:information_source: Shopware 5.6.2
:information_source: Enterprise Search 2.2.8

:white_check_mark: Ich habe den Elastic Search Index bereits erfolgreich befüllen können. Ich habe dazu ein neues Plugin geschrieben, dass quasi fast das selbe macht wie die Dateien unter custom/plugins/SwagEnterpriseSearch/Bundle/ESIndexingBundle/Category/
Also DataIndexer, Mapping, Provider, Struct, SuggestionBuilder erstellt und den Elastic Search Index mit Daten aus einer externen DB befüllt.
Diese Daten haben genau denselben Aufbau wie die ganzen anderen Elastic Indexes:

Ich möchte folgendes:
:x: Suchergebnis erweitern mit einem weiteren Wert aus einer externen DB (indexiert in ES)
Das hat auch gut funktioniert wenn ich testweise in der SwagEnterpriseSearch in allen Suggestion* Dateien analog zur suggestion_emotion noch eine weitere Suggestion (suggestion_lexicon) hinzugefügt habe. Er zeigte mir dann in den Suchergebnissen die gefundenen Ergebnisse erfolgreich an.

Meine Idee war folgende:
:information_source: SwagEnterpriseSearch erweitern mit diesem bereits geschriebenen Plugin.
Dazu habe ich einfach jedes File, dass in der SwagEnterpriseSearch eine Suggestion (zB Emotion oder Category) beinhaltet oder damit zu tun hatte in mein Plugin übernommen und „überarbeitet“.
Also folgende Dateien:

  • frontend/search/search_results.tpl
  • /Bundle/SearchBundle/CriteriaRequestHandler.php
  • /Bundle/SearchBundle/ExtendSuggestionFacet.php
  • /Bundle/SearchBundle/ExtendSuggestionFacetResult.php
  • /Bundle/SearchBundleES/ExtendSuggestionHandler.php
  • /Bundle/SearchBundleES/SearchTermQueryBuilder.php
  • /Bundle/EnterpriseSearchBundle/SearchConfig/ExtendSuggestionConfig.php
  • /Bundle/EnterpriseSearchBundle/SearchConfig/ExtendConfigCollection.php
  • /Bundle/EnterpriseSearchBundle/SearchConfig/ExtendReader.php
  • /Bundle/EnterpriseSearchBundle/SearchConfig/ExtendReaderInterface.php

Sobald ich jedoch in der /Bundle/SearchBundle/CriteriaRequestHandler.php (folgenden Code aufrufe:
PS: Es ist genau der gleiche Code wie in custom/plugins/SwagEnterpriseSearch/Bundle/SearchBundle/CriteriaRequestHandler.php
→ nur dass ich aus addFacet( new SuggestionFacet (…) ); → addFacet (new ExtendSuggestionFacet (…)); gemacht habe. Also Zusammengefasst so:

class CriteriaRequestHandler implements CriteriaRequestHandlerInterface
{
/**
* @var ReaderInterface
*/
private $reader;

/**
 * @var FacetFilterInterface
 */
private $facetFilter;

/**
 * @var RepositoryInterface
 */
private $repository;

public function __construct(
    ExtendReaderInterface $reader,
    FacetFilterInterface $facetFilter,
    RepositoryInterface $repository
) {
    $this->reader = $reader;
    $this->facetFilter = $facetFilter;
    $this->repository = $repository;
}

/**
 * @param Request $request
 * @param Criteria $criteria
 * @param ShopContextInterface $context
 */
public function handleRequest(
    Request $request,
    Criteria $criteria,
    ShopContextInterface $context
) {
    $config = $this->reader->read();
    $searchPageConfig = $config->getSearchPageConfig($context->getShop()->getId());

    $criteria->addFacet(
        new ExtendSuggestionFacet(
            $request->get('sSearch'),
            $searchPageConfig
        )
    );

erhalte ich folgenden Fehler aber ich weis nicht wieso.

Fatal error : Uncaught RuntimeException: \Bundle\SearchBundle\ExtendSuggestionFacet class not supported in /var/www/html/shop/custom/plugins/SwagEnterpriseSearch/Bundle/SearchBundleES/ProductNumberSearch.php:201 Stack trace: #0 /var/www/html/shop/custom/plugins/SwagEnterpriseSearch/Bundle/SearchBundleES/ProductNumberSearch.php(180): SwagEnterpriseSearch\Bundle\SearchBundleES\ProductNumberSearch->getHandler(Object(\Bundle\SearchBundle\ExtendSuggestionFacet)) #1 /var/www/html/shop/custom/plugins/SwagEnterpriseSearch/Bundle/SearchBundleES/ProductNumberSearch.php(152): SwagEnterpriseSearch\Bundle\SearchBundleES\ProductNumberSearch->addCriteriaParts(Object(Shopware\Bundle\SearchBundle\Criteria), Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext), Object(SwagEnterpriseSearch\ElasticsearchDsl\Msearch), Array) #2 /var/www/html/shop/custom/plugins/SwagEnterpriseSearch/Bundle/SearchBundleES/ProductNumberSearch.php(78): SwagEnterpriseSearch\Bundle\SearchBundleES\ProductNumberSearch->buildS in /var/www/html/shop/custom/plugins/SwagEnterpriseSearch/Bundle/SearchBundleES/ProductNumberSearch.php on line 201

Habt Ihr Ideen wieso dieser Fehler kommt? Ist das nicht erlaubt?
Habt ihr andere evtl einfachere Vorschläge wie ich die Suggestions um eine weitere erweitern könnte?

Ich habe einen Fehler entdeckt:

In der ExtendSuggestionHandler in der supports() function war noch instanceof SuggestionFacet enthalten und musste wie folgt heissen:

public function supports(CriteriaPartInterface $criteriaPart)
{
return $criteriaPart instanceof ExtendSuggestionFacet;
}

Nun kommt der Fehler nicht mehr.
Jetzt muss ich nur noch rausfinden, wieso er mir noch keine Ergebnisse anzeigt.