Я использую клиент SOLR PHP для запроса данных из службы solr. Мой код выглядит примерно так: я передаю запрос для поиска по нескольким идентификаторам (в моем случае, много). Проблема возникает для меня, когда я ищу слишком много идентификаторов одновременно. Я получаю «Request Entity Too Large», когда передаю слишком много ID. Есть ли способ обойти это? Из того, что я вижу в различных примерах, синтаксис выглядит так: «id: 1 ИЛИ id: 2 ИЛИ id: 3 и т. Д.» при поиске по нескольким значениям. Это другой синтаксис, который уменьшит размер запроса, передаваемого в службу? например В SQL мы можем сказать: «id in (1,2,3 и т. Д.)». Можем ли мы сделать что-то подобное для запроса SOLR?
<?php
require_once( 'SolrPHPClient/Apache/Solr/Service.php' );
$solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' );
$offset = 0;
$limit = 10;
$queries = array(
'id: 1 OR id: 2 OR id:3 OR id:4 OR id:5 OR id:6 or id:7 or id:8' // in my case, this list keeps growing and growing
);
foreach ( $queries as $query ) {
$response = $solr->search( $query, $offset, $limit );
if ( $response->getHttpStatus() == 200 ) {
print_r( $response->getRawResponse() );
}
else {
echo $response->getHttpStatusMessage();
}
}
?>