java - 使用 POST HTTP 方法使用 SolrJ 从 Solr 读取数据
问题描述
我们正在使用 SolrJ 客户端从 Solr 查询文档。我们正在构建的查询很大,Solr 拒绝查询(带有错误响应414 URI Too Long
)。
但是,我可以直接调用 Solr 的/query
端点并使用 POST 请求将查询作为正文发布。有没有办法使用 SolrJ 客户端来做到这一点?
解决方案
您可以使用 QueryRequest 在 SolrJ 中使用 post 方法,该方法具有设置 HTTP 方法的选项。
public QueryResponse query(SolrQuery parameters){
QueryResponse resp=null;
try {
QueryRequest queryRequest=new QueryRequest(parameters);
queryRequest.setMethod(SolrRequest.METHOD.POST);
NamedList nl=solrClient.request(queryRequest);
resp=new QueryResponse(nl, solrClient);
} catch (Exception e) {
e.printStackTrace();
}
return resp;
}
推荐阅读
- apache-spark - 无法在 Databricks 中创建 H2OContext - 使用 pysparkling
- c# - 如何对数据进行分组。我想显示一个列表,单击时包含 foo 的数据,单击时包含 boo 的数据
- python - Matplotlib pyplot:绘图数组混合了 y 轴标签
- r - 从 purrr 的 pmap() 调用 var() 返回 NA
- r - 对于列中的每个唯一值,找到最少 4 个日期
- javascript - Omeka 中的 JavaScript 手风琴
- html - 在 HTML 中使用阿拉伯字母的有序项目符号列表
- c++ - 在 GDB 中打印变量似乎会改变代码行为?
- java - java中未知长度数组的条件
- regex - 在Scala中为字符串添加双引号