intershop - 自定义属性搜索建议

标签 intershop

我们需要检索 3 种搜索建议:

  1. 产品建议
  2. 类别建议
  3. 品牌建议

此处需要注意的是,品牌建议应来自名为 Brand 的自定义属性

到目前为止,我们已经尝试了两种不同的方法,但由于不同的原因均未成功:

方法 1 - SF 对象建议搜索

通过使用SF Object Suggest Search,我们几乎得到了我们需要的东西。产品和类别建议正在按预期工作。问题出在品牌建议上。根据documentation品牌建议来自 ManufacturerName 属性:

The brand suggestions are collected from the ManufacturerName index attribute of the SFProductSearch index.

除此之外,Intershop 命名一些品牌而实际上是ManufacturerName是一种非常糟糕的做法,我们真正的问题是 我们的所有产品都有一个名为 Brand 的自定义属性,用于指定品牌,并且我们使用默认的 ManufacturerName 字段来表示产品的实际制造商。

我们希望实现的是,品牌建议是从 SFProductSearch 索引的 Brand 索引属性收集的,而不是从 ManufacturerName 收集的> 索引属性。

文档还指出,SFObjectSuggestSearch 的缺点之一是它具有:

A limited hard-coded set of supported attributes

这让我们相信,永远不可能修改 SFObjectSuggestSearch 使其按照我们想要的方式运行。所以我们尝试了方法2。

方法 2 - SF 产品搜索建议

通过使用SFProduct Search Suggest并将自动建议属性添加到SFProductSearch产品索引中,我们能够检索我们需要的所有属性。

这种方法的缺点是,创建的所有 SolrSuggestResultItem 对象都具有 Unspecified 类型,这使得我们无法对产品、类别和品牌以一种很好的方式结合在一起。

documentation在这一点上非常糟糕/模糊,因为它写道:

The custom values in the suggest index at search index configuration level can configure custom values with the prefix SuggestType_ followed by a type.

因此,我们怀疑必须对 SuggestType_ 做一些事情,但我们似乎无法弄清楚。后台的搜索索引配置选项似乎没有提供类似的东西。作为最后的手段,我们还尝试直接对 ISH-Config.xml 进行更改,但每次构建搜索索引时,这些文件中的任何更改都会被覆盖。

摘要

  • 方法 1 不成功,因为它建议制造商而不是品牌。
  • 方法 2 不成功,因为返回的 SolrSuggestResultItems 的类型均为 Unspecified

有什么方法可以使用这两种方法吗?目前,我们对方法 1 或方法 2 没有偏好,因此我们将非常感谢其中任何一种的解决方案,或者更合适的方法的指导。

最佳答案

回答我自己的问题:

经过一些实验,我们对方法 1 进行了修改,使其发挥作用。

ISH-Config.xml 中,我们更改了以下内容:

<custom-value name="ObjectSuggestType_brand" type="string">
    <value>ManufacturerName</value>
</custom-value>

对此:

<custom-value name="ObjectSuggestType_brand" type="string">
    <value>Brand</value>
</custom-value>

通过此配置,现在可以从 SFProductSearch 索引的 Brand 索引属性而不是从 ManufacturerName 索引属性收集品牌建议。

通过在进行此更改后直接重新部署服务器,当您稍后对 SF 对象建议搜索 进行更改时,配置不会被覆盖。

关于intershop - 自定义属性搜索建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53190766/

相关文章:

json - 在 Intershop 上解析 JSON 的推荐方法是什么?

Intershop:有没有办法从 ISML 的属性文件中读取值?

calculation - 注册篮子计算结果查看

java - Intershop studio 4.20.0 - 编译Java - ClassNotFoundException : com. sun.xml.bind.v2.ContextFactory

java - Intershop 代码部署工作流程

java - intershop 在 .isml 模板中获取日期

orm - Intershop EDL 建模 - 如何添加级联删除的依赖关系

intershop - 从 Intershop 7.7 更新到 7.9 后未加载 Pipelet

intershop - 如何告诉页面缓存忽略某些 URL 参数