按分层类别,子类别

时间:2018-03-24 16:43:41

标签: solr hierarchical-data solrj facet faceted-search

我有类别:

auto, tools & travel
auto, tools & travel > luggage tags
auto, tools & travel > luggage tags > luggage spotters
auto, tools & travel > luggage tags > something else
auto, tools & travel > car organizers

将产品分配到最终级别子类别。例如“汽车,工具和旅行>行李标签>行李观察员”,但不是上级类别/子类别。

我希望在按类别搜索时获取所有子类别下的产品。例如当通过“类别:汽车,工具和旅行”搜索时,我想获得上面列出的类别/子类别下的所有产品。我使用通配符搜索它,它的工作原理。

因此,“类别:自动,\工具\&\ \ \ Travel \> *”会带来所有带有上述类别的产品。您可以为此任务建议更好的方法。

下一个问题是当我使用“类别”作为“facet.field:categories”时,我会计算每个子类别。例如“汽车,工具和旅行>行李标签>行李箱检测器”(50),以及“汽车,工具和旅行>行李标签>别的东西”(40)但是“汽车,工具和旅行>行李标签“为零,因为没有产品直接分配到此类别,”自动,工具和旅行“相同。我希望获得“汽车,工具和旅行>行李标签”和“汽车,工具和旅行”的产品数量。假设“汽车,工具和旅行>汽车组织者”(25),我应该获得90“汽车,工具和旅行>行李标签”和115“汽车,工具和旅行”。

预期方面数:

auto, tools & travel    (115)
auto, tools & travel > luggage tags (90)
auto, tools & travel > luggage tags > luggage spotters  (40)
auto, tools & travel > luggage tags > something else    (50)
auto, tools & travel > car organizers   (25)

类别字段是一个多值字段。示例产品条目如下:

{
    "cat_aliases":["travel-agency",
      "luggage-tags"],
    "prd_id":85579,
    "prd_name":"Suitcase Shaped PVC Luggage Tag",
    "categories":["Industry Promotional Products > Travel Agency",
      "Auto, Tools & Travel > Luggage Tags"],
    "item_color":["yellow",
      "black",
      "blue",
      "red"],
    "prd_sort_order":24,
    "id":"7a4c1eba-95ec-4d62-9b15-7dfac1cb10ec",
    "_version_":1595462736827908098
}

0 个答案:

没有答案