我已经使用此代码开始我的新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堆栈,并且我完全阻止此错误。你可以帮我建议我一些新的想法:)
祝你好运, 乌鲁卡:)
答案 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.哪一个是实际端口?