如何为 hybris OCC 添加 itemType facet

How to add itemType facet for hybris OCC

我希望能够像这样 api 在后台使用您可以在后台(附加图像)使用的项目类型 "https://localhost:9002/rest/v2/test/products/search?fields=FULL&query=:name-asc:itemType:Concrete:类别:PHX";

这可能吗?

我正在使用 hybris 6.4

有可能。您必须为索引项类型的 SOLR 配置创建索引 属性。

为此创建impex:

INSERT_UPDATE SolrIndexedProperty; $solrIndexedType; name[unique = true]    ; backofficeDisplayName; type(code); facet[default=true]; multiValue; priority; fieldValueProvider                    ; valueProviderParameter                                              ; facetDisplayNameProvider                    ; facetType(code); facetSort(code); visible[default=true]
                                 ;                 ; productType            ; Product Type         ; string    ;                    ; false     ; 1       ; productTypeValueResolver              ;                                                                     ;                                             ; MultiSelectOr  ; Alpha

然后创建解析器

public class ProductTypeValueResolver extends AbstractValueResolver<ItemModel, Object, Object> {

    @Override
    protected void addFieldValues(final InputDocument inputDocument, final IndexerBatchContext indexerBatchContext,
                    final IndexedProperty indexedProperty, final ItemModel product,
                    final ValueResolverContext<Object, Object> resolverContext) throws FieldValueProviderException {
            inputDocument.addField(indexedProperty, product.getItemtype(), resolverContext.getFieldQualifier());
    }
}

最后用那个解析器创建一个 spring bean

<bean id="productTypeValueResolver" class="com.your.package.ProductTypeValueResolver" parent="abstractValueResolver">

之后,您将在 solr 中获得额外的 属性,这将反映您的项目类型,您可以在产品搜索端点上使用它