Azure搜索-分层方面指南



我正在开发一个项目,希望在该项目中具有层次化方面。我有一个结构复杂的索引,如:指数-字段1-列表othercomplexfield包含另一个列表,其中有另一个complexfield。

我希望能够给用户的可能性:

具备领域1的各个方面。当选择一个时,我想给用户选择"0"的某个字段的值之一的可能性;othercomplexfield";同时通过所选字段1进行过滤。

我能做到。

然后我想给用户选择一个可能值"0"的可能性;另一个复数域";同时通过字段1和所选择的其他复杂字段进行过滤。

这里的困难在于,我不想要所有可能的facet值,而只想要我正在筛选的另一个complexfield所包含的值。

到目前为止,我不得不在c#中这样做,而且我没有找到一种方法来编写一个查询,从azure搜索中返回我想要的不同值。

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

我不确定我是否完全理解您问题的上下文。我可以告诉您的是,筛选器只适用于文档级别,而不适用于复杂的集合级别。我的意思是,如果过滤器与复杂集合中的某个项匹配,那么将返回整个文档,而不仅仅是复杂集合中匹配的项。facets也是如此——facets将统计结果集中与过滤器匹配的所有文档,并且不能仅限于文档的一部分。这样一来,在您的应用程序中使用您提到的这种逻辑可能是当前索引模式的最佳方法。

我们确实有一篇旧的博客文章,谈到了用Azure认知搜索实现分层方面的一种方法,这可能会给你一些关于如何实现你想要的功能的其他想法:https://learn.microsoft.com/en-us/archive/blogs/onsearch/multi-level-taxonomy-facets-in-azure-search

最新更新