我们注意到WebSphere Commerce中“类别名称”字段搜索存在以下问题,因此尝试了解这是不是数据设置问题,还是Commerce Search / SOLR不适用于此类情况。
我们有超过100个针对特定站点和特定客户的目录,客户登录时会获得自己的目录/类别/项目,类别浏览或订单放置没有问题,但是自OOB以来,OOB关键字搜索存在问题IBM_findProductsBySearchTerm概要文件将'categoryname'作为'defaultSearch'的一部分,同时进行SOLR调用以及名称,shortDesc,关键字和其他几个字段。
已经说过,由于在其他一些客户的目录类别名称中找到匹配项,因此我们看到了与给定搜索关键字无关的太多不必要的结果。如果我在下面的wc-search.xml文件中进行注释,我们确实会看到正确的结果,但这也会阻止在当前目录中搜索类别。
<_config:field name="defaultSearch"/>
<_config:field name="categoryname"/>
例如,以下是与“糖果”关键字匹配但不属于当前网站和目录(具有目录D的网站)关键字搜索的类别,我们如何防止在关键字搜索过程中获得评分并仍使用类别名称搜索?
Rubys的糖果-在目录A中 史密斯奶制品-目录B 厨房用具-目录C 糖果用品-目录E
预备套件-在目录D中,此类别中没有任何物品带有“糖果”字样。
基本上,对于关键字搜索中具有目录D的网站,我们也从'Prep kits'类别中获取商品,因为其他目录的类别中都有单词“ candy”。简而言之,在wc-search.xml或直接SOLR查询(qf = categoryname)中使用“ categoryname”字段时,我们会得到太多无关的结果。
我认为这是因为类别名称被索引为wc_text,并且在系统中所有目录中都带有逗号分隔的数据。
为了解决此问题,需要进行哪种自定义才能使搜索返回相关结果?
谢谢
答案 0 :(得分:0)
没有任何OOB,因为类别名称索引数据没有catalog_id可见性。通过添加动态且多值的categoryname_字段解决了该问题,并使用该字段替换了自定义ExpressionProvider类中的现有categoryname qf。这将关键字搜索仅限制在当前目录类别中,并返回正确的结果。