Solr + php 报400

php中文网
发布: 2016-06-06 20:50:45
原创
1564人浏览过

初学solr从网上下载了一个例子,但是运行时报以下错误:

Fatal error: Uncaught exception 'Apache_Solr_HttpTransportException' with message ''400' Status: Bad Request' in /Applications/XAMPP/xamppfiles/htdocs/phpSolr/SolrPhpClient/Apache/Solr/Service.php:338 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/phpSolr/SolrPhpClient/Apache/Solr/Service.php(1170): Apache_Solr_Service->_sendRawGet('http://localhos...') #1 /Applications/XAMPP/xamppfiles/htdocs/phpSolr/index.php(78): Apache_Solr_Service->search('name: ????', 0, 10) #2 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/phpSolr/SolrPhpClient/Apache/Solr/Service.php on line 338
登录后复制

从网上找过答案,大部分都说是schema.xml中没有定义field,但是我确认我使用的field都说定义了,实在是不知道为什么了,希望有人知道!!

回复内容:

初学solr从网上下载了一个例子,但是运行时报以下错误:

Fatal error: Uncaught exception 'Apache_Solr_HttpTransportException' with message ''400' Status: Bad Request' in /Applications/XAMPP/xamppfiles/htdocs/phpSolr/SolrPhpClient/Apache/Solr/Service.php:338 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/phpSolr/SolrPhpClient/Apache/Solr/Service.php(1170): Apache_Solr_Service->_sendRawGet('http://localhos...') #1 /Applications/XAMPP/xamppfiles/htdocs/phpSolr/index.php(78): Apache_Solr_Service->search('name: ????', 0, 10) #2 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/phpSolr/SolrPhpClient/Apache/Solr/Service.php on line 338
登录后复制

从网上找过答案,大部分都说是schema.xml中没有定义field,但是我确认我使用的field都说定义了,实在是不知道为什么了,希望有人知道!!

首先我要说的是 ... 并不是所有的牛奶都叫某某苏 ... 也并不是所有的错误都叫 404 ...

立即学习PHP免费学习笔记(深入)”;

你的这个错误是 '400' Status: Bad Request ... 而不是 404 ...

一般来说这个错误出现的原因就如你所说 ... 是 schema.xml 中没有定义 field ...

但是具体如何还要分析 ...

Apache_Solr_Service 这个类不会回传 solr 的内部错误 ... 所以我们要用其他方式解决 ...

第一种方式比较简单 ... 查看 solr 的 log ... 会有类似于下面一行的内容 ...

SEVERE: org.apache.solr.common.SolrException: ****

其中 **** 就是具体造成错误的原因 ...

magento(麦进斗)
magento(麦进斗)

Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的

magento(麦进斗) 0
查看详情 magento(麦进斗)

第二种方法 ... 使用 solr 自带的一个工具叫 solr admin ...

在这个工具里你可以手动输入查询 ... 如果查询无效的话也会显示出详细的错误信息 ...

以你描述的情况来说 ... 只需要输入 name:???? 然后点确定就好 ...

有了错误信息才能知道如何解决这个问题 ... 不然只能靠东一榔头西一棒子的猜测 ... 费时费力 ...

只说 solr 报了错 ... 你也不知道为什么只希望别人知道 ... 很遗憾 ... 我觉得没有人会知道 ...

话可能说的有点重 ... 抱歉 ... 但道理是这样 ...

先要学会良好的描述自己遇到的问题才能希望别人可以准确高效的解决问题 ... 你说是不是 ..?

注意你在调用 Apache_Solr_Service() 构造函数时的传参。有一个陷阱是第五个参数即 $compatibilityLayer 需传递的参数应根据你的 Solr 服务器版本进行变化,如你是 Solr 4.0+ 应传递 new Apache_Solr_Compatibility_Solr4CompatibilityLayer

原因是 Solr3 和 Solr4 生成的 XML 格式不同,有一些参数在使用时有兼容问题,从而触发 HTTP 400 Bad Request 问题。目前的 solr-php-client 默认使用的是 Solr3 标准。

希望能帮助到你。

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号