枢轴刻面可以工作。
假设您有以下字段:cityId, cityName, country
使用查询参数对 city-id、city-name 进行数据透视:
facet.pivot=cityId,cityName
在第一级,就像标准方面一样,您将获得每个城市 ID。但在第二层,您将获得每个城市的名称。假设每个城市 ID 只有一个名称,您可以简单地从下一个方面级别(在pivot
XML 中的元素下)读取每个城市 ID 的名称。
<lst name="facet_pivot">
<arr name="cityId,city">
<lst>
<str name="field">cityId</str>
<str name="value">1</str>
<int name="count">1</int>
<arr name="pivot">
<lst>
<str name="field">city</str>
<str name="value">berlin</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
<lst>
<str name="field">cityId</str>
<str name="value">2</str>
<int name="count">1</int>
<arr name="pivot">
<lst>
<str name="field">city</str>
<str name="value">berlin</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
<lst>
<str name="field">cityId</str>
<str name="value">3</str>
<int name="count">1</int>
<arr name="pivot">
<lst>
<str name="field">city</str>
<str name="value">melbourne</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
</arr>
</lst>
基本上,如果 ID 是唯一的,那么您将保证pivot
在第二级只有一个值。
或者,如果您想将您的“柏林”组合在一起,只需颠倒刻面枢轴的顺序并使其:
facet.pivot=cityName,cityId
并且您将在第一级获得“柏林”,在第二级可能会获得多个 ID(作为奖励,您可以添加第三级country
,以便您可以在第三级之外读取每个城市的国家/地区)。