You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sitecore中多选择字段搜索查询无结果问题求助

多选项Category字段过滤导致GraphQL查询返回空结果排查

我运行两个GraphQL查询:

  1. GetListOfPocketCardsWithoutCategory:该查询可正常返回包含多选Category字段的结果,相关查询语句、变量及返回数据如下:
query($after: String, $LimitPerPage : Int) {
  categories: search(
    where: {
      AND: [
        {
          name: "_templates"
          value: "CB19F29D-C01B-4950-A67A-7C00756328AB"
          operator: EQ
        }
        {
            name: "_path"
            value: "D744F0C5-FA3A-47BE-AC95-C453BAFB7564"
            operator: CONTAINS
        }
        {
          name: "_language"
          value: "en"
          operator: EQ
        }
      ]
    },
    first : $LimitPerPage,
    after : $after,
  ) {
    results {
        fields {
                name
                jsonValue
        }
    }
    total
    pageInfo {
      hasNext
      endCursor
    }
  }
}

变量:

{
    "after" : "", 
    "LimitPerPage" : 1000
}

返回数据:

{
    "data": {
        "categories": {
            "results": [
                {
                    "fields": [
                        {
                            "name": "Download Link",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Download Link CTA",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Download Title CTA",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Schema",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Metadata Keywords",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Metadata Description",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Metadata Title",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Page Title",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Published Date Section",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Page Alias",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Description",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Category",
                            "jsonValue": [
                                {
                                    "id": "d820b902-b9b7-4d27-9a15-3eec213fc5bd",
                                    "url": "/Data/Categories/Medical Surgical Nursing",
                                    "name": "Medical Surgical Nursing",
                                    "displayName": "Medical Surgical Nursing",
                                    "fields": {}
                                },
                                {
                                    "id": "dd67c0b2-f20f-4026-90f7-70ee8f28972a",
                                    "url": "/Data/Categories/Gastroenterology Nursing",
                                    "name": "Gastroenterology Nursing",
                                    "displayName": "Gastroenterology Nursing",
                                    "fields": {}
                                },
                                {
                                    "id": "44d461cc-a8c0-42f3-9ec6-2a819302aa6f",
                                    "url": "/Data/Categories/Home Health Nursing",
                                    "name": "Home Health Nursing",
                                    "displayName": "Home Health Nursing",
                                    "fields": {}
                                },
                                {
                                    "id": "837d8ffe-e5c6-425c-b7fa-4706933fafa4",
                                    "url": "/Data/Categories/Primary Care",
                                    "name": "Primary Care",
                                    "displayName": "Primary Care",
                                    "fields": {}
                                }
                            ]
                        }
                    ]
                },
                {
                    "fields": [
                        {
                            "name": "Download Link",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Download Link CTA",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Download Title CTA",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Schema",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Metadata Keywords",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Metadata Description",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Metadata Title",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Page Title",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Published Date Section",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Page Alias",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Description",
                            "jsonValue": {
                                "value": ""
                            }
                        },
                        {
                            "name": "Category",
                            "jsonValue": [
                                {
                                    "id": "80382f82-92d8-4df0-9ec3-174e1533aac0",
                                    "url": "/Data/Categories/Critical Care Nursing",
                                    "name": "Critical Care Nursing",
                                    "displayName": "Critical Care Nursing",
                                    "fields": {}
                                },
                                {
                                    "id": "d820b902-b9b7-4d27-9a15-3eec213fc5bd",
                                    "url": "/Data/Categories/Medical Surgical Nursing",
                                    "name": "Medical Surgical Nursing",
                                    "displayName": "Medical Surgical Nursing",
                                    "fields": {}
                                },
                                {
                                    "id": "a593aa5d-1038-42af-bb8d-fb3b5bb61891",
                                    "url": "/Data/Categories/Nephrology Urology",
                                    "name": "Nephrology Urology",
                                    "displayName": "Nephrology Urology",
                                    "fields": {}
                                },
                                {
                                    "id": "837d8ffe-e5c6-425c-b7fa-4706933fafa4",
                                    "url": "/Data/Categories/Primary Care",
                                    "name": "Primary Care",
                                    "displayName": "Primary Care",
                                    "fields": {}
                                }
                            ]
                        }
                    ]
                }
            ],
            "total": 2,
            "pageInfo": {
                "hasNext": false,
                "endCursor": "Mg=="
            }
        }
    }
}
  1. GetListOfPocketCardsWithCategory:添加Category字段ID作为过滤条件后,查询返回空结果。相关查询语句及变量如下:
query($Category: String, $after: String, $LimitPerPage : Int) {
  categories: search(
    where: {
      AND: [
        {
          name: "_templates"
          value: "CB19F29D-C01B-4950-A67A-7C00756328AB"
          operator: EQ
        }
        {
            name: "_path"
            value: "D744F0C5-FA3A-47BE-AC95-C453BAFB7564"
            operator: CONTAINS
        }
        {
          name: "_language"
          value: "en"
          operator: EQ
        }
        {
          name: "Category"
          value: $Category
          operator: EQ
        }
      ]
    },
    first : $LimitPerPage,
    after : $after,
  ) {
    results {
        fields {
                name
                value
        }
    }
    total
    pageInfo {
      hasNext
      endCursor
    }
  }
}

变量:

{
    "Category": "d820b902-b9b7-4d27-9a15-3eec213fc5bd",
    "after": "",
    "LimitPerPage" : 10000
}

问题原因及解决方法

从返回数据可以看到,Category字段是数组类型(存储多个分类对象),而直接用EQ操作符匹配单个ID字符串,这种匹配方式不适用于数组类型字段。

针对数组类型的多选项字段,需要使用适配的操作符,比如IN或CONTAINS(具体取决于你的GraphQL API支持的操作符)。修改后的过滤条件如下:

{
  name: "Category"
  value: $Category
  operator: IN  # 或根据API文档使用CONTAINS
}

部分API可能要求传入数组格式的参数,此时需要调整变量为数组形式:

{
    "Category": ["d820b902-b9b7-4d27-9a15-3eec213fc5bd"],
    "after": "",
    "LimitPerPage" : 10000
}

另外注意,第一个查询返回字段用的是jsonValue,第二个查询用的是value,如果API要求字段名一致,建议统一为jsonValue,避免返回字段不匹配的问题。


内容的提问来源于stack exchange,提问作者Piyush Pandita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:19:51