【问题标题】:Call Solr JSON Request API through HTTP request通过 HTTP 请求调用 Solr JSON Request API
【发布时间】:2025-11-25 22:10:01
【问题描述】:

我需要通过 HTTP 请求而不是 Curl 命令调用 Solr JSON 请求 API。

例如将给出 Solr 结果的示例 Curl 命令:

curl http://localhost:port/solr/collection/select -d 'json={query:"id:1"}&wt=json'

我知道等效的 Solr HTTP 查询是 http://localhost:port/solr/collection/select?q=id:1

但我原来的 Solr JSON 请求 API 有多个参数,我想知道我是否可以直接使用 HTTP 调用它(无需像上面那样转换查询)。

类似:http://localhost:port/solr/collection/select?json={query:"id:1"}

我该怎么做?有可能吗?

【问题讨论】:

  • 你的意思是把HTTP url直接放到浏览器中?或者正在寻找可以将完整json作为参数的客户端?
  • 如果您不能使用现有的客户端(如 SolrJ)或在 Solr 纯 URL 中转换所有 JSON 请求,您所能做的就是将您的 curl HTTP 帖子移动到编程中完成的等效请求中您必须使用的语言。
  • @SabirKhan 我愿意接受选择(想知道所有可能的方式)。但我不确定是否可以选择在浏览器中作为直接 HTTP url 输入。如果我错了,请纠正我
  • @freedev 是的,我们也在做同样的事情

标签: curl solr lucene


【解决方案1】:

curl -d(或 --data)只是向 Solr 发送一个 POST 请求。如果你想在 java 中做同样的事情:

  • 使用您喜欢的 http 库(如 Apache Http Client 或任何其他库)并使用它的 api 将其设置为 POST 类型请求并添加所需的数据。
  • 或者你可以只使用普通的 java,它只是更冗长,here 就是一个例子

【讨论】: