如何配置 Solarium 以使用 POST 而不是 GET 请求

How to configure Solarium to use POST instead of GET Requests

我面临的问题是我们发送到 solr(jetty)的 uri 越来越长,超过 9k 字节,超过了 jetty 的默认限制。

解决方案是从 GET 请求切换到 POST 请求,因为我们不想增加 jetty 可以接受的 requestHeaderSize。

所以在升级项目的同时,我们也切换到日光浴室作为 php solr 客户端。现在的问题是将 POST 设置为默认方法或根据请求设置的正确方法是什么,以及在什么级别发生这种情况? solr 客户端或请求或其他?

非常感谢您的帮助。

您可以使用 the bundled PostBigRequest plugin。它允许您在请求切换为 POST 请求之前使用限制,或者将所有请求作为 POST 请求发送。如果您没有使用 GET 请求的特定需求(例如,如果您有诸如 varnish 之类的反向代理,则进行缓存),您可以将所有请求切换为 POST 请求。

// create a client instance and autoload the postbigrequest plugin
$client = new Solarium\Client($config);
$client->getPlugin('postbigrequest');