Apache Solr을 처음 사용했습니다. Solr과 PHP 웹 애플리케이션 간의 상호 작용을 위해 Solr PHP 클라이언트를 사용하고 있습니다.Apache Solr에서 독일어 움라우트 처리
im facing 문제는 독일어 움라우트 문자입니다. 내가 그 안에 문자열을 갖는 움라우트 문자를 검색하려고 할 때마다 아래에 주어진, SOLR에서 예외가 발생합니다 :
exception 'Apache_Solr_HttpTransportException' with message ''400' Status: Bad Request'
in C:\SolrPhpClient\Apache\Solr\Service.php:338
Stack trace: #0 C:\SolrPhpClient\Apache\Solr\Service.php(1170):
Apache_Solr_Service->_sendRawGet('http://localhost...') #1 C:\Apache24\htdocs\MyProject\results.php(42):
Apache_Solr_Service->search('f?r', 0, 10) #2 {main}
당신은 독일의 "모피"
"F R?"로 표시됩니다 볼 수 있듯이iconv() 및 htmlentities()를 사용하여 변환하려고했으나 false 또는 empty를 반환했습니다.
$query = "für"; //string with German umlaut
try {
//instantiate a Solr object
$solr = new Apache_Solr_Service(SOLRHOST, SOLRPORT, SOLRNAME);
// Check if Solr is running
if (!$solr->ping()) {
echo 'Solr service not responding!';
exit;
}
// I have tried these functions
// $query = iconv("UTF-8", "ISO-8859-15//TRANSLIT",$query);
// $query = htmlentities($query,ENT_QUOTES,'UTF-8');
//run the query
$results = $solr->search($query, 0, 10); // exception occurs here
$numDocs = $results->response->numFound;
$docs = $results->response->docs;
// Check if there are any results
if (empty($numDocs) || $numDocs <= 0) {
print_r($docs);
echo "No records found!!";
} else {
echo ("No. of docs:".$numDocs."<br/>");
print_r($docs);
echo "records found!!";
}
} catch (Exception $e) {
$log->error($e->getMessage());
echo($e->__toString());
}
전체 오류 메시지를 추가 하시겠습니까? 당신은 C에서 잘못된 Request 후에 흥미로운 부분을 잘라낼 수도 있습니다 ... ' – cheffe
안녕하세요 cheffe, 위의 오류 메시지를 업데이트했습니다. – Harshrossi