如果搜索命中产品,则 EPi 查找获取所有变体

EPi find get all variants if search hit on product

出现 EPi 查找问题,我们有 WebProducts 和 WebVariants,当在类别页面上显示简单的产品列表时,我正确显示了以下结果

但是当我尝试对网站搜索使用相同的功能时,它变得复杂了。 WebProduct 有一个名为 Brand 的 属性,而 WebVariants 没有 属性。因此,当我搜索 "My brand" 并找到具有 WebVariants 的 WebProduct 时,它不会显示 WebProduct,因为在这种情况下第 2 点为真。

另一方面,我不想展示该产品,但我想获得该产品的变体...这听起来可能令人困惑:grimacing:

我将添加使第 1 点和第 2 点起作用的代码片段。

                .SearchAndFilterFor(q)
                .Filter(x =>
                    (x.MatchType(typeof(WebVariant))) |
                    (x.MatchType(typeof(WebProduct)) & ((WebProduct)x).HasVariants().Match(false)))```

我会说你有几个选项可供选择。

或者:

1:更改变体的索引方式,使它们包含一些它们当前缺少的关键信息(在本例中为品牌),并因此出现在搜索结果中。

2:只需搜索 WebProduct,然后循环遍历这些结果,对 do/don 没有变体的结果进行处理。