我对分面搜索很新,所以我很难绕过这个...但是这里有:
假装我Item
包含SubItem
的集合,而SubItem
有一个表示状态的枚举 - 我已成功启用{{1上的类别的分面搜索}和Item
使用此索引定义:
SubItem
和public class FacetIndexItems : AbstractIndexCreationTask<Item>
{
public const string FacetId = "facets/Items";
public const string ItemCategoryFacetName = "Category";
public const string SubItemCategoryFacetName = "SubItems_Category";
public FacetIndexItems()
{
Map = items => from item in items
from subItem in item.SubItems
select new
{
Category = item.Category,
SubItems_Category = subItem.Category
};
}
}
:
FacetSetup
到目前为止,非常好!
现在,假装new FacetSetup
{
Id = FacetIndexItems.FacetId,
Facets =
{
new Facet {Name = FacetIndexItems.ItemCategoryFacetName},
new Facet {Name = FacetIndexItems.SubItemCategoryFacetName}
}
}
拥有SubItem
属性 - 有没有办法将每个方面的结果划分为不同的状态?
E.g。以便查询这些数据:
Status
{
Category: "wut",
SubItems: [
{Category: "bim", Status: "good"},
{Category: "bim", Status: "good"},
{Category: "bim", Status: "bad"}
]
}
的会产生类似
的结果item.Category.In("wut") && item.SubItems.Any(s => s.Category.In("bim"))
我不确定这是否可能与分面搜索有关,如果我的方法错了,我绝对愿意接受替代方案。
答案 0 :(得分:1)
您必须为每个选项生成不同的值,您不能一次在多个字段上执行构面。 但是你可以在索引时生成字段,这样就可以了。