java - Solr url 的 session ID

标签 java solr solrj jsessionid

我正在尝试向运行 Solr 的服务器发送查询,如下所示:

String solrServerUrl = //SomeBaseUrl
CommonsHttpSolrServer searchServer = new CommonsHttpSolrServer("http://"+solrServerUrl);
QueryResponse result = searchServer.query(query,SolrRequest.METHOD.POST);

在我发送到 Solr 服务器的查询请求中,我附加了 sessionId 字符串,如下所示(用于日志记录目的):

String solrServerUrl = SomeBaseUrl.concat("?sessionId");

当我运行服务器时,出现以下异常:

nested exception is java.lang.RuntimeException: Invalid base url for solrj. The base URL must not contain parameters

有人可以指出如何将唯一的 session ID 转发到 Solr 服务器,以便目标 Solr 服务器中设置的 tomcat 阀门选择该 session ID 以进行日志记录吗?

谢谢

最佳答案

我认为对于实际的 CommonsHttpSolrServer 代码来说这是不可能的,无论您使用 POST 还是 GET 都没有关系(即使 rfeak 的评论看起来不错)。

CommonsHttpSolrServer 构造函数中有这样的条件:

if( _baseURL.indexOf( '?' ) >=0 ) {
    throw new RuntimeException( "Invalid base url for solrj.  The base URL must not contain parameters: "+_baseURL );
}

我会尝试使用 SolrQuery#setParam 方法。这样您就可以添加其他请求参数,这些参数应该被 Solr 请求处理程序忽略。

关于java - Solr url 的 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8479606/

相关文章:

python - haystack solr 搜索所有字段

solr - 如何添加 Hybris Solr By 以获得 bool 值

java - 在 Weka 中对新图像进行分类

java - 案例研究 : Singleton class inheritance - Good or bad?

java - 在Linux headless 机器中修改文件时触发java jar文件

mongodb - 将 ObjectID 作为字符串导入

java - 尝试使用 SWT 会导致许多错误

java - 频繁调用 Solr 查询期间 Solr 错误 -> "Cannot assign requested address (connect failed)"

Solrj 无法从 Solr Cloud 示例连接到 zookeeper

unit-testing - 通过嵌入式服务器测试 Solr