graphqlsitecore

Not able to run search query on multiselect field in Sitecore


I'm running two APIs:

  1. GetListOfPocketCardsWithoutCategory:

query for this is below:

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
    }
  }
}

Variables are below:

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

and response I'm getting:

{
    "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=="
            }
        }
    }
}

so when i want to run my second query

  1. GetListOfPocketCardsWithCategory:

my query for this is below:

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
    }
  }
}

and my variables are:

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

so for this I'm not getting empty results list, can anyone tell what I'm doing wrong?


Solution

  • The Category field is a multi-valued field and the index treat it as a collection, not as a single string. Therefore, the EQ operator will never match the given string data exactly. So, use the CONTAINS operator instead for a multilist field.