更新文档时出现Solr错误

时间:2015-05-29 13:35:57

标签: php apache solr

我已经使用此代码开始我的新solr搜索。

include "BootStrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,

);

$client = new SolrClient($options);

$doc = new SolrInputDocument();
/*$doc->addField('idDocument', 1);
$doc->addField('titleFr', 'Le petit poucet');
*/

$doc->addField(utf8_encode('idDocument'), utf8_encode(1));
$doc->addField(utf8_encode('titleFr'), utf8_encode('Le petit poucet'));

var_dump($doc->getFieldNames());
$updateResponse = $client->addDocument($doc, true, 10000);
//$client->commit();
var_dump($updateResponse->getResponse());

我的BootStrap.php是:     

/* Nom de domaine du serveur Solr */
define('SOLR_SERVER_HOSTNAME', 'localhost:81/solr/#/testDocument/');

/* Si l'on doit exécuter en mode sécurisé ou non */
define('SOLR_SECURE', true);

/* Port HTTP de connexion */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* Nom d'utilisateur pour l'authentification HTTP Basic */
define('SOLR_SERVER_USERNAME', 'admin');

/* Mot de passe pour l'authentification HTTP Basic */
define('SOLR_SERVER_PASSWORD', '');

/* Délai maximal de connexion HTTP */
/* C'estla durée maximale en secondes autorisée pour l'opération de transfert de données http. La valeur par défaut est 30 secondes */
define('SOLR_SERVER_TIMEOUT', 10);

/* Nom du fichier de la clé privée formattée PEM + du certificat privé (concaténés dans cet ordre) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* Nom du fichier du certificat privé formatté PEM seulement */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* Nom du fichier de la clé privée formattée PEM */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Mot de passe pour le fichier de la clé privée formattée PEM */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Nom du fichier contenant un ou plusieurs certificats CA pour l'authentification */
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Nom du dossier contenant les certificats CA pour l'authentification */
define('SOLR_SSL_CAPATH', 'certs/');

当我使用它时。我有其他错误的错误。  Warning: SolrClient::addDocument(): Entity: line 4: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE9 0x74 0x68 0x6F in C:\wamp\www\testAntoine2\send.php on line 76

我使用Bitnami Apache solR堆栈,并且我完全阻止此错误。你可以帮我建议我一些新的想法:)

祝你好运, 乌鲁卡:)

1 个答案:

答案 0 :(得分:0)

您的Solr网址包含" /#/" ...这是一个 ONLY 在完整图形浏览器中工作的URL - 它是管理UI的一部分。在运行与Solr进行API通信的管理UI时,您无法使用浏览器中显示的URL。

如果" testDocument"是Solr核心的名称(或SolrCloud安装的集合),那么这是Solr URL:

本地主机:81 / solr的/ testDocument /

我无法确定你使用的是哪个PHP Solr客户端,但对于那个$ options变量,我相信你应该只有" localhost"对于主机名,端口中的正确端口号,以及" / solr / testDocument"为了这条路。目前你根本没有路径。

我在这里有些困惑...对于主机名,你有一个包含端口81的URL,但是对于端口,你使用的是8443或8983.哪一个是实际端口?