我正在使用 Spring RestTemplate 调用 Apache Solr 索引。我手动形成一个请求字符串,并且不提供任何有意的 {variable_name} 模板扩展变量。查询的一部分是术语 {!lucene q.op=OR}。不幸的是,URITemplate 引擎会将此作为 restTemplate.getForObject 调用的一部分进行处理。
理想情况下,我想停止此处理。是否可以转义 { } 字符以使 URITemplate 不处理它们?我已经尝试对字符进行编码,但 RestTemplate 假定一个未编码的字符串,因此它们被编码两次并在后端导致 400:错误请求。
示例网址:
http://localhost/solr/select?q= {!lucene q.op=OR}se_genbanklocus:* se_gb_create:* se_gb_update:* se_clone_name:* se_sample_tissue:*&facet=true&facet.limit=3&facet.mincount=1&facet.field= se_sample_tissue&facet.field=se_sample_tissue_name&facet.field=se_sample_tissue_code&facet.field=se_sample_tissue_class&facet.field=se_nuc_acid_type&facet.field=ssam_sample_georegion&start=0&rows=10