
해당 오류는 필드명이 정확하게 일치하지 않아 발생하는 오류가 아닙니다. 필드명은 정확하게 'id'로 지정되어 있습니다.
해당 오류는 필드 타입이 일치하지 않아 발생하는 오류입니다. SolrClient::getById 메소드는 문서의 ID를 사용하여 문서를 조회하므로, 필드 타입은 'string'으로 지정되어 있어야 합니다.
하지만, Solr 서버 버전 8.11.1에서는 기본적으로 ID 필드는 'long' 타입으로 지정되어 있습니다. 따라서, 필드 타입이 'string'에서 'long'으로 변경되어야 합니다.
또한, 필드명이 정확하게 일치하지만, 필드 타입이 일치하지 않아 발생하는 오류는 발생하지 않습니다.
해결 방법은 다음과 같습니다.
1. 필드 타입을 'long'으로 변경합니다.
2. SolrClient::getById 메소드를 호출할 때, ID 필드의 타입을 'long'으로 지정합니다.
예를 들어, 다음과 같이 필드 타입을 'long'으로 변경하고, SolrClient::getById 메소드를 호출할 때, ID 필드의 타입을 'long'으로 지정할 수 있습니다.
#hostingforum.kr
php
// 필드 타입을 'long'으로 변경
$schema = array(
'fields' => array(
'id' => array(
'type' => 'long',
'multiValued' => false
)
)
);
// SolrClient::getById 메소드를 호출할 때, ID 필드의 타입을 'long'으로 지정
$client->getById('id', 123L);
또한, 필드 타입을 'string'으로 변경하고, SolrClient::getById 메소드를 호출할 때, ID 필드의 타입을 'string'으로 지정할 수도 있습니다.
#hostingforum.kr
php
// 필드 타입을 'string'으로 변경
$schema = array(
'fields' => array(
'id' => array(
'type' => 'string',
'multiValued' => false
)
)
);
// SolrClient::getById 메소드를 호출할 때, ID 필드의 타입을 'string'으로 지정
$client->getById('id', '123');
2025-04-05 11:17