Я использую Spring RestTemplate для совершения вызовов индекса Apache Solr. Я формирую строку запроса вручную и не добавляю никаких преднамеренных переменных расширения переменных {variable_name}. Частью запроса является термин {! Lucene q.op = OR}. К сожалению, это обрабатывается движком URITemplate как часть вызова restTemplate.getForObject.Остановить расширение URITemplate при использовании Spring RESTTemplate
В идеале я хотел бы остановить эту обработку. Не удается ли избежать символа {}, чтобы URITemplate не обрабатывал их? Я пробовал кодировать символы, но RestTemplate предполагает некодированную строку, поэтому они закодированы дважды и вызывают запрос 400: Bad на бэкэнд.
Пример URL:
http://localhost/solr/select?q= {Lucene q.op = OR!} Se_genbanklocus: * se_gb_create: * se_gb_update: * se_clone_name: * se_sample_tissue: * & фаска = истинный & 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 & начать = 0 & строк = 10
согласен, я изменил свой подход на основе вашей обратной связи – nialloc