solr query的post方式
2024-10-09 05:05:07
众所周知, solr 是通过 GET 方式来进行查询的。
那么solr 是否支持POST 方式进行查询呢?
通过一番调研,发现SOLR其实是支持POST方式进行查询的。
方式为:
使用form 方式提交POST请求到 select Handler即可
具体的来说:就是要在POST请求的header中添加
Content-Type:application/x-www-form-urlencoded;charset=utf-8
具体代码结构,主要在于Solr 解析请求参数部分。
参见
org.apache.solr.servlet.SolrDispatchFilter ---》
solrReq = parser.parse( core, path, req );
org.apache.solr.servlet.SolrRequestParsers ----》
SolrParams params = parser.parseParamsAndFillStreams( req, streams );
SolrQueryRequest sreq = buildRequestFrom( core, params, streams );
org.apache.solr.servlet.SolrRequestParsers.StandardRequestParser ---->
if ("POST".equals( method ) ) {
if (formdata.isFormData(req)) {
return formdata.parseParamsAndFillStreams(req, streams);
}
if (ServletFileUpload.isMultipartContent(req)) {
return multipart.parseParamsAndFillStreams(req, streams);
}
return raw.parseParamsAndFillStreams(req, streams);
}
org.apache.solr.servlet.SolrRequestParsers.FormDataRequestParser ----->
public boolean isFormData(HttpServletRequest req){}
最新文章
- adb 命令
- LeetCode 8 String to Integer (string转int)
- HTML5自学笔记[ 15 ]canvas绘图基础6
- 在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
- CentOS6.5 python 2.6升级到2.7
- Aptana Studio 快捷键
- hdu 2031
- [Javascript] property function &;&; Enumeration
- Android sdk content loader
- Java项目 打war包方法
- python 时间模块(time ,datetime,calendar)
- java的线程
- Map接口、HashMap类、LinkedHashSet类
- CentOS 7 个性化配置指南
- OK6410移植linux3.3.1
- VC++使用MapFileAndCheckSum完成自检测
- 【Python046--魔法方法:描述符】
- Vsphere初试——使用Vsphere client
- [CF1060E]Sergey and Subway[树dp]
- zoj 3286 Very Simple Counting---统计[1,N]相同因子个数