solr - 如何在 Hybris 的前端显示 facet 值?
问题描述
我通过item.xml在ProductModel中添加了String类型的品牌属性。我需要为品牌创造一个方面。我有两个品牌——索尼和佳能。创建构面后,我可以在 UI 上看到“Shop by Brand”,但在其下找不到 Sony 或 Canon。
我使用的 impexes 是:
INSERT_UPDATE SolrIndexedProperty;solrIndexedType(identifier) [unique=true];name[unique=true];type(code);sortableType(code);currency[default=false];localized[default=false];multiValue[default=false];facet[default=true];facetType(code);facetSort(code);priority;visible;useForSpellchecking[default=false];useForAutocomplete[default=false];fieldValueProvider;valueProviderParameter;facetDisplayNameProvider;customFacetSortProvider;topValuesProvider;rangeSets(name)
;$solrIndexedType;brand;string;;;;;;Refine;Alpha;;true;true;true;springELValueProvider;
INSERT_UPDATE SolrSearchQueryProperty; indexedProperty(name, solrIndexedType(identifier))[unique = true]; searchQueryTemplate(name, indexedType(identifier))[unique = true][default = DEFAULT:$solrIndexedType]; facet[default = true]; facetType(code); includeInResponse[default = true]; facetDisplayNameProvider;facetSortProvider;facetTopValuesProvider
; brand:$solrIndexedType ; ; ; ; ;
有人可以指出我错过了什么吗?
解决方案
要使品牌属性作为构面可用,需要遵循以下步骤:
- 通过创建 SolrIndexedProperty 并将其与价值提供者关联,通过价值提供者将品牌属性索引到 SOLR
- 索引后确保将数据发送到 SOLR 以获取相应的产品
- 下一步是在 Bakcoffice 中进行构面设置(或者这也可以通过 solr.impex 在为自定义品牌属性创建 SolrIndexedProperty 标头 impex 时完成)
- 在后台构面配置中编辑该属性并转到“构面设置”选项卡,这将使我们能够为自定义(品牌)属性定义构面,该属性可用于根据 PLP 或 SLP 中的构面值过滤结果。将“Facet”设置为“TRUE”或者这可以通过 impex 通过设置facet[default=true]来处理
- 通过facetType(code)选择构面类型为“单选”或“多选”
- 重新索引 Solr 和更改应反映在 Search 或 PLP
推荐阅读
- aws-lambda - 功能即服务 (FaaS) 托管如何在后台工作?
- go - 为什么 go-jaeger-client 需要度量和日志的包装器?
- reactjs - 为什么 Scrollspy 未在反应应用程序中加载?
- java - 异步回调和监听器
- sql - 如何在 SQL Server 脚本中使用临时表?
- python - python内存因循环而爆炸
- php - 我们可以在 php 中使用和操作 mysql 数据吗?
- vue.js - vue-material 本地化主题避免冲突
- android - Mpandroidchart 无法根据需要对数据进行分组?
- reactjs - 是否可以在反应中跳过 componentDIdMount Lifecycle 方法?