Azure搜索索引器:无法使用包含名为“$ref”的字段的集合创建基于mongodb数据源的索引器

jjhzyzn0  于 2023-01-09  发布在  Go
关注(0)|答案(1)|浏览(94)

正如标题中所描述的,我在创建索引器(同时使用门户Azure和Rest API)时面临一个奇怪的错误。

{
    "error": {
        "code": "",
        "message": "Error with data source: Additional content found in JSON reference object. A JSON reference object should only have a $ref property. Path '$id'.  Please adjust your data source definition in order to proceed."
    }
}

数据源是通过azure门户创建的,未指定删除或更改策略。

comosdb(MongoDb)中的JSON结构帖子收集

{
  "_id": {
    "$oid": "....."
  },
  "author": {
    "$ref": "user",
    "$id": {
      "$oid": "...."
    }
  },
  "_class": "com.community.domain.Post"
}

在索引器定义下面

{
"dataSourceName": "fshco-post",
"targetIndexName": "index",
"fieldMappings": [
{
"sourceFieldName": "_class",
"targetFieldName": "class"
}

    ],
    "parameters": {
        "batchSize": 1000,
        "maxFailedItems": null,
        "maxFailedItemsPerBatch": null
    }

}

为了确认问题出在$ref属性上,我使用了一个包含一个文档的集合Post,但是在author字段中没有子属性$ref,并且它被成功地索引了。
我尝试使用技能集ShaperSkill修改$ref命名,但也没有出现相同的错误。之后,我了解到问题可能出在技能集执行阶段之前的数据破解阶段。indexing phases
以下是我使用的定义技能集:

{
      "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
      "name": "#1",
      "description": null,
      "context": "/document",
      "inputs": [
        {
          "name": "refto",
          "source": "/document/author/$ref"
        },
        {
          "name": "id",
          "source": "/document/author/$id"
        }
      ],
      "outputs": [
        {
          "name": "output",
          "targetName": "post_author"  --> same name as the index attribute
        }
      ]
    }
  ]

在步进器中

"skillsetName": "skillpostshaper",
    "outputFieldMappings": [
        {
            "sourceFieldName": "/document/post_author",
            "targetFieldName": "post_author"
        }
    ],

"有什么明显的我错过了吗"

jgovgodb

jgovgodb1#

AFAIK,索引字段名不应该以特殊字符开头,如前所述here

使用索引器中的字段Map,我已经完成了一个字段到另一个字段的Map,下面是我遵循的步骤,
1.创建数据源、索引和索引器。
1.在索引中添加了名为ref的新文件。
1.在indexer中,添加了如下所示的字段Map。此处将ref字段Map到名称为HotelName.

的现有字段
1.运行索引器后,能够获取ref字段中的数据。

相关问题