使用 DocumentDb 作为服务资源创建 azure 搜索服务?

Creating azure search service with DocumentDb as resource for service?

我已经设置了 DocumentDb 并将文档上传到 DocumentDb。

我的 JSON 文档的数据最多嵌套 4 层,例如:-

{
  id: '12345',
  properties:
  {
      Accessories:
      {
            watch:1,
            WristBands: [{
                  blue:1, 
                  red: 2}]
                  }
            }
  Name: Leo,
  Age: 24
}

我想使用 azure 搜索服务来搜索到最后一级(例如腕带颜色的计数,即 blue:1)。我也设置了服务。

我需要一些帮助在 C# 中为此类嵌套数据创建索引和索引器,以便我可以查询该服务。 已经找到,如何使用DataType.Collection(DataType.String),但这支持到2级。

类 也可以为每个子级别制作,但不知道如何在索引期间定义它们。参考示例 https://github.com/Azure-Samples/search-dotnet-getting-started .

遗憾的是,Azure 搜索不支持嵌套文档。正如您在我们的 Uservoice 页面中看到的那样,这是迄今为止请求最多的功能,因此我们非常有兴趣添加它(如果您不介意,请在此处投票)。不幸的是,我们还没有关于何时实施它的时间表。

与此同时,对于某些应用程序来说,扁平化 JSON 文档或利用集合类型是现实的。有关扁平化文档的更多详细信息,Kirk Evans 在该主题上有一个非常好的 blog post

关于为 DocumentDB 设置 Azure 搜索索引器的更多教程:https://azure.microsoft.com/en-us/documentation/articles/documentdb-search-indexer/

+1 在 Kirk Evans 的博客 post 上,它展示了如何展平 JSON 文档。这个想法是利用数据源创建请求中容器下的可选查询 属性,并在那个地方使用连接查询。