Я хочу экранировать специальный символ из этого запроса Solr
Стрингфилд: / «имя»: «Elan» /.
Я пробую это
Стрингфилд: / \».название.\ «: \».Elan.\ «/
но это не работает. Есть ли другие способы решить эту проблему?
Я до сих пор не понимаю твои настройки, но, думаю, ты слишком сбегаешь. И запрос в вашем вопросе выглядит странно в отношении адресации полей.
Запрос фильтра должен состоять только из field:value
не field1:field2:value
или что-то…
В качестве подсказки попробуйте собрать URL вручную и заставить его работать. Или используйте пользовательский интерфейс Solr Admin, где вы можете собрать свой запрос на основе формы. Вы также получите URL запроса оттуда.
Вы пытались напечатать URL, который вы собрали в своем коде PHP, и вызвать его вручную?
URL вашего запроса должен выглядеть просто так:
http://localhost:8983/solr/mycore/select?q=*&fq=myfield:"myvalue"
или URL-экранированный:
http://localhost:8983/solr/mycore/select?q=*&fq=myfield%3A%22myvalue%22
Я думаю, ваш код PHP должен выглядеть так:
$solrq .= '&fq=stringfield:"' . urlencode($_POST['name']) . '"';
где $_POST['name']
надеюсь, просто Elan
,
Других решений пока нет …