如何扩展 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
.
中定义这些实体来实现
当前的 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
.