【发布时间】:2018-07-17 22:59:27
【问题描述】:
我希望能够像这样“https://localhost:9002/rest/v2/test/products/search?fields=FULL&query=:name-asc:itemType:Concrete:category:PHX”; p>
这可能吗?
我使用的是 hybris 6.4
【问题讨论】:
我希望能够像这样“https://localhost:9002/rest/v2/test/products/search?fields=FULL&query=:name-asc:itemType:Concrete:category:PHX”; p>
这可能吗?
我使用的是 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 中获得额外的属性,这将反映您的项目类型,您可以在产品搜索端点上使用它
【讨论】: