Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Solr Xpath错误:未找到任何元素_Php_Xpath_Solr - Fatal编程技术网

PHP Solr Xpath错误:未找到任何元素

PHP Solr Xpath错误:未找到任何元素,php,xpath,solr,Php,Xpath,Solr,PECL信息 Installed packages, channel pecl.php.net: ========================================= solr 2.0.0 stable PHP版本5.3.6 Solr版本4.9.0 我使用的是这个程序的新安装,使用/example/start.jar包,没有修改任何配置。管理小组做得很好。但是,在尝试执行基于Lucene的查询时,围绕此技术构建的应用程序返回以下错误: PHP Warning: SolrClie

PECL信息

Installed packages, channel pecl.php.net:
=========================================
solr 2.0.0 stable
PHP版本5.3.6

Solr版本4.9.0

我使用的是这个程序的新安装,使用/example/start.jar包,没有修改任何配置。管理小组做得很好。但是,在尝试执行基于Lucene的查询时,围绕此技术构建的应用程序返回以下错误:

PHP Warning:  SolrClient::query(): Xpath Error: no elements found

Solr在我的本地环境中工作,不同之处在于PHP的版本,设置为5.5.9-1ubuntu4.3。这可能是一个因素吗?

我也有同样的问题,我的问题如下: 问题是它找不到相应的solr核心/集合。 php solr实现(seams to)默认使用名为“collection1”的核心,如果该核心不存在,则会出现错误“Xpath错误:未找到任何元素”

要解决此问题,可以设置已使用的集合/核心的路径。 如果执行查询,您必须在http://host:port之后设置URL部分的路径,正如您在Solr Admin中看到的那样。 例子: 你的核心被命名为“食谱”, 查询url应为: 所以您需要路径“/solr/recipes”

对于设置路径,您可以执行以下操作:(基于)


当您查询Solr服务器日志时,它会说什么?我猜您会遇到异常,或者根本没有加载核心,因此应用程序容器只是返回一条错误消息,而不是XML内容。
define('SOLR_PATH', '/solr/recipes');

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

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

print_r($updateResponse->getResponse());