Hybris SOLR 刻面索引属性未显示

问题描述

我创建了一个新的 SOLR 索引属性,它必须作为一个方面的类别:

DataForm.Builder xep0004 = DataForm.builder(DataForm.Type.submit);  //new DataForm(DataForm.Type.submit);
        TextSingleFormField.Builder token = FormField.builder("token");
        token.setValue(App.user_settings.getFirebasetoken(App.mContext));
        TextSingleFormField.Builder device_id = FormField.builder("android-id"); //new FormField("device-id");
        device_id.setValue(App.user_settings.getECCID(App.mContext));

        xep0004.addField(token.build());
        xep0004.addField(device_id.build());

        IQ pushStanza = new IQ("command","http://jabber.org/protocol/commands") {
            @Override
            protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
                xml.attribute("action","execute");
                xml.attribute("node","register-push-fcm");
                xml.setEmptyElement();
                return xml;
            }
        };
        pushStanza.setType(IQ.Type.set);
        pushStanza.setTo(JidCreate.from("p2.server.com"));
        pushStanza.setFrom(connection.getUser());
        pushStanza.addExtension(xep0004.build());
        
        if (connection.isSmEnabled()) {
            try {
                connection.addStanzaIdAckNowledgedListener(pushStanza.getStanzaId(),new StanzaListener() {
                    @Override
                    public void processstanza(Stanza stanza) throws NotConnectedException,InterruptedException,SmackException.NotLoggedInException {
                        Log.e("stanza result",stanza.toXML().toString());
                       // registerTokenToXmpp1();
                    }
                });
            } catch (Exception e) {
                e.printstacktrace();
            }
        }
        connection.sendStanza(pushStanza);

我已经创建了自定义值提供程序:

INSERT_UPDATE SolrIndexedProperty; solrIndexedType(identifier)[unique = true]; name[unique = true]; type(code); multiValue[default = true]; facet[default = true]; facetType(code); facetSort(code); priority; visible; categoryField[default = true]; fieldValueProvider             ; facetdisplayNameProvider         ; topValuesProvider
                             ; $solrIndexedType                          ; color              ; string    ;                           ;                      ; MultiSelectOr  ; Alpha          ; 4000    ; true   ;                              ; colorCategoryNameValueProvider ; categoryFacetdisplayNameProvider ; defaultTopValuesProvider

我已经执行了一个完整的索引并且我 SOLR Admin 我可以看到填充的新索引字段:

    <bean id="colorCategoryNameValueProvider" parent="abstractCategoryNameValueProvider">
    <property name="categorySource" ref="colorCategorySource" />
</bean>

<bean id="colorCategorySource" parent="abstractCategorySource">
    <property name="rootCategory" value="color" />
</bean>

然而,当我去 PLP/Grid 时,我只看到一个方面,那就是价格。

正如您在 impex 中看到的,SolrIndexedPropert isFacet 属性设置为 TRUE 并且也在 SOLR 数据库中填充,为什么 hybris 没有检测到这个方面并将其显示在店面中?

解决方法

如果结果中的所有产品都具有相同的值或根本没有值,则构面将不会显示。只有当用户过滤它时它会对结果产生影响时,才会出现该构面。你能检查一下是不是这样?

,

发现问题:

连同 SolrIndexedProperty,为了显示 facet,我必须添加 facets 属性:

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
                                 ; categoryPath:$solrIndexedType                                    ;                                                                                                      ;                      ; Refine         ;                                  ;                                      ;
                                 ; category:$solrIndexedType                                        ;                                                                                                      ;                      ; Refine         ;                                  ; categoryFacetDisplayNameProvider ; defaultTopValuesProvider
                                 ; brand:$solrIndexedType                                           ;                                                                                                      ;                      ; MultiSelectOr  ;                                  ; categoryFacetDisplayNameProvider ; defaultTopValuesProvider
                                 ; color:$solrIndexedType                                           ;                                                                                                      ;                      ; MultiSelectOr  ;                                  ; categoryFacetDisplayNameProvider ; defaultTopValuesProvider
                                 ; size:$solrIndexedType                                            ;                                                                                                      ;                      ; MultiSelectOr  ;                                  ; categoryFacetDisplayNameProvider ; defaultTopValuesProvider