ACSD-55100: GraphQL在搜索结果中未返回超过10,000的产品

ACSD-55100修补程序修复了以下问题:GraphQL不会返回搜索结果中超过​ 10k ​的产品。 安装Quality Patches Tool (QPT) 1.1.46时,此修补程序可用。 修补程序ID为ACSD-55100。 请注意,该问题计划在Adobe Commerce 2.4.7中修复。

受影响的产品和版本

为Adobe Commerce版本创建了修补程序:

  • Adobe Commerce(所有部署方法) 2.4.6

与Adobe Commerce版本兼容:

  • Adobe Commerce(所有部署方法) 2.4.6 - 2.4.6-p3
NOTE
该修补程序可能适用于具有新Quality Patches Tool发行版本的其他版本。 要检查修补程序是否与您的Adobe Commerce版本兼容,请将magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。

问题

GraphQL不会返回搜索结果中超过​ 10k ​的产品。

先决条件

如果是​ OpenSearch,请确保您使用的是最新的可用版本。

为了解决报告的问题,引入了时间点功能,该功能在​ OpenSearch 2.5.0之后可用,并且需要opensearch-project/opensearch-php包的版本2.2。

但是,magento/magento-cloud-metapackage存在冲突,它指定了opensearch-project/opensearch-php程序包上的依赖项,该程序包应小于版本2.0.1。

此依赖项阻止将[opensearch-project/opensearch-php]包更新到最新版本2.2。

因此,系统遇到以下错误,并针对超过​ 10,000 ​的产品返回null结果。

Namespace [createPointInTime] not found in /vendor/opensearch-project/opensearch-php/src/OpenSearch/Client.php:135

现有依赖关系使得直接向composer.json文件添加版本并将opensearch-project/opensearch-php包更新到版本2.2变得困难。

要解决此问题,请在主composer.json文件中的require块下加入以下行。 之后,重新部署以将有问题的包更新到最新版本。

"opensearch-project/opensearch-php": "2.2.0 as 2.0.0",

重现步骤

  1. 生成包含​ 15k ​产品的目录。
  2. 发送GraphQL:
    query {
    products(
    filter: {
    # category_id:{eq:""}
    }
    , pageSize: 5, currentPage: 1

    ) {
    total_count
    page_info {
    current_page
    page_size
    total_pages
     }

     aggregations {

    attribute_code
    count
    label
    options {
    label
    value

    }
    }

    items {
    uid
    sku
    is_for_clearance
    categories {
    name
    breadcrumbs {
    category_name
    category_uid
    }
    display_mode
    description
    }
    }
    }
    }

预期的结果

Total_count = 15k
您应该能够显示所有产品。

实际结果

Total_count = 10k
您不能在 10k ​批次之后再显示任何产品。

应用修补程序

要应用单独的修补程序,请根据您的部署方法使用以下链接:

相关阅读

要了解有关Quality Patches Tool的更多信息,请参阅:

有关QPT中其他可用修补程序的信息,请参阅Quality Patches Tool指南中的Quality Patches Tool:搜索修补程序

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3