我正在评估Azure搜索项目。 MSDN文章只有Flattened架构结构。以下是我正在查看的示例场景。
以下是"项目"提及"问题"类。和"问题"拥有它自己的一组字段
public class Project
{
public Guid Id
{
get;
set;
}
public string Owner
{
get;
set;
}
public string Title
{
get;
set;
}
public List<Question> QuestionList
{
get;
set;
}
public bool Disable
{
get;
set;
}
}
public class Question
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
下面是项目的索引架构
问题
我在MSDN中看到的唯一一点是以下段落,我无法理解它
分面导航中的级别
如上所述,没有直接支持嵌套方面 层次结构。开箱即用,分面导航仅支持一个级别 过滤器但是,确实存在变通方法。你可以编码一个 Collection(Edm.String)中的一个分层构面结构 每个层次的入口点。实施此解决方法超出了 本文的范围,但您可以阅读OData中的集合 实施例。
答案 0 :(得分:2)
对于您的第一个问题,Azure搜索不允许分层数据类型,并且搜索您需要像您为作为集合创建的QuestionList字段那样展平数据。如果您询问如何根据此Collection中的项目过滤结果,则可以使用OData表达式,例如$ filter = QuestionList / any(t:t eq&#39; Question1&#39;)({{3} })
我认为对于你的第二个问题,你感兴趣的只是搜索&#34; Title&#34; 或&#34;问题&#34;,对吗?为此,您可以使用SearchFields参数(https://msdn.microsoft.com/en-us/library/azure/dn798921.aspx)。
利安