如何扩展 Shopware 6 搜索,以便按自定义字段、制造商名称、产品 ID 等进行搜索?

How to extend Shopware 6 search so it would search by custom fields, manufacturer name, product id, etc?

当前的 Shopware 6 搜索不会搜索所有产品属性。

如何更改它以便按自定义字段、属性、ean 等进行搜索?

我试图创建 ProductSuggestResultEvent 的订阅者,但没有结果。

您应该在 src/Resources/config/services.xml 中装饰 Shopware\Core\Content\Product\SearchKeyword\ProductSearchKeywordAnalyzer

<service id="CustomAnalyzer"
         decorates="Shopware\Core\Content\Product\SearchKeyword\ProductSearchKeywordAnalyzer">
    <argument type="service" id="CustomAnalyzer.inner" />
</service>

在您自己的分析器中,您可以通过执行父函数获得原始响应:

class CustomAnalyzer implements ProductSearchKeywordAnalyzerInterface {
    [...]

    public function analyze(ProductEntity $product, Context $context): AnalyzedKeywordCollection {
        $keywords = $this->originalService->analyze($product, $context);

        [...]
    }
}

如果您想添加其他实体,您可以通过在 services.xml.

中定义这些实体来实现