如何在 Azure 搜索中索引可为空的字段

How to index nullable fields on azure search

我正在使用 nodejs 在 azure search 上创建索引,

 {

        "name": "price_positioning",

        "type": "Edm.ComplexType",

        "fields": [

            {

                "name": "id",

                "type": "Edm.Double",

                "filterable": false

            },

            {

                "name": "name",

                "type": "Edm.String",

                "searchable": true,

                "filterable": true,

                "sortable": true,

                "facetable": true

            }

        ]

    },

而 json 是:

[{"price_positioning":""},
{
"price_positioning":{"id":1.1,"name":"test"}
 }]

当我尝试执行程序时,它给出了这个错误: “请求无效。详细信息:参数:尝试读取 属性 'price_positioning' 的值时发现具有非空值的 'PrimitiveValue' 节点;但是, 'StartArray' 节点、'StartObject' 节点或具有空值的 'PrimitiveValue' 节点。\r\n"

你知道我们如何索引可为空的字段吗?

如果您没有 price_positioning 的值,您可以将该属性完全排除在请求之外或将其标记为 null

例如,像这样将值设置为 null 将起作用:

"price_positioning": null

或者,如果您愿意,您仍然可以创建 price_positioning 对象并将其每个属性标记为空:

"price_positioning": {
    "id": null,
    "name": null
}