gpt4 book ai didi

odata - Azure 搜索 : Group By or Distinct in OData context/Query?

转载 作者:行者123 更新时间:2023-12-02 00:51:35 25 4
gpt4 key购买 nike

使用 Azure 搜索服务,我需要能够对查询中的字段进行分组或使用不同的字段。

用例:
我的商业模式有“资源”的概念,它有 >=1 次修订。 1 个修订版是 Azure 索引中的 1 个文档。我需要模拟“从索引中选择最近更改的资源,同时还允许分页”之类的东西,因此我需要能够将索引中的文档分组到资源中并通过它们进行搜索

最佳答案

Azure 搜索不支持直接在查询语言中使用 distinct 或 group-by 等运算符。但是,可能还有其他方法可以实现您想要的目标。

一种方法是使索引中的每个文档都成为资源而不是资源的修订版。那么你可以拥有一个 complex collection field代表每个资源的修订。这种方法有一些潜在的警告:

  • 如果每个资源有很多(即数千个)修订,它就不能很好地扩展。事实上,文档中所有集合的复杂对象限制为 3000 个。
  • 若要添加新修订,您必须读取-修改-写入整个修订集合,因为 Azure 搜索不支持集合内合并。
  • 如果查询的主要单位确实是修订而不是资源,那么将修订建模为文档更自然。但是,根据您需要的查询模式,您始终可以拥有多个索引。

  • 另一种方法是添加一个 bool 字段,如 IsLatestVersion ,但是每当您向索引添加新修订时,您都需要在先前修订上将该标志设置为 false。上面使用复杂类型的方法可能会更直接。

    关于odata - Azure 搜索 : Group By or Distinct in OData context/Query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57159447/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com