Azure 搜索 - 分层方面指南

Azure Search - Hierarchical facets guidance

我正在开发一个项目,我希望在其中具有分层方面。 我有一个结构复杂的索引,例如: 指数 -field1 -列表 而 othercomplexfield 包含另一个列表,里面有 anothercomplexfield。

我希望能够为用户提供以下可能性:

具有 field1 的方面。 当一个被 selected 时,我想让用户在按 selected 字段 1 过滤时,可以 select “othercomplexfield” 的某个字段的值之一。

我能做到。

然后我想让用户在按 field1 和 selected othercomplexfield 过滤时 select “anothercomplexfield”的可能值之一。

这里的困难在于我不想要所有可能的构面值,而只想要我正在过滤的其他复杂字段包含的那些。

到目前为止,我必须在 c# 中执行此操作,但我没有找到一种方法来编写查询,让我从 azure search 返回我想要的不同值。

有人有类似的问题吗? 我对问题的解释够好吗? 我在网上没有看到明确的指导,如果你只有 1 级方面,一切都很容易,但是当你进入嵌套对象时,它就不再那么清楚了。

我不确定我是否完全理解您问题的背景。我可以告诉您的是,过滤器仅适用于文档级别,而不适用于复杂的集合级别。我的意思是,如果过滤器匹配复杂集合中的项目,则将返回整个文档,而不仅仅是复杂集合中匹配的项目。 facets 也是如此——facets 将对结果集中与过滤器匹配的所有文档进行计数,并且不能仅将范围缩小到文档的一部分。这样一来,就像您提到的那样在您的应用程序中使用这种逻辑似乎是您当前索引架构的最佳方法。

我们确实有这个旧博客 post,它讨论了一种使用 Azure 认知搜索实现分层方面的方法,这可能会给您一些关于如何实现您正在寻找的功能的其他想法:https://docs.microsoft.com/en-us/archive/blogs/onsearch/multi-level-taxonomy-facets-in-azure-search