Я использую фильтр запросов с Solr 4.10.0/4.10.0 Lucene и имеют странную ситуацию, в то время какSolr: Странное поведение с экранированием и избежать
fq=areas:Finanz- & Rechnungswesen
иfq=areas:"Finanz- & Rechnungswesen"
выдают такой же комплект документов,
fq=areas:E-Commerce & Neue Medien
иfq=areas:"E-Commerce & Neue Medien"
не в последнем случае –, набор результатов пуст.
я выполнил запросы в Solr интерфейса администратора и проверить в Solr журнал, что фильтры правильно перевести на запрос Params
fq=areas:Finanz-+%26+Rechnungswesen
fq=areas:"Finanz-+%26+Rechnungswesen"
fq=areas:E-Commerce+%26+Neue+Medien
fq=areas:"E-Commerce+%26+Neue+Medien"
соответственно. Только в последнем случае набор результатов пуст. Может ли кто-нибудь объяснить, почему это так? К сожалению, Spring Data Solr цитирует многослотовые фильтры, поэтому он дает неверный результат в этом случае.
вы пробовали 'Criteria.expression', который примет аргумент как есть? Не могли бы вы поделиться фрагментом, где вы строите запрос? –
@ ChristophStrobl: Большое спасибо за ваше предложение; Я попробовал (построил запрос изначально без кавычек), и он работает действительно, но только в специальных сценариях. Когда я использую более сложный запрос (две строки, связанные с OR), я не нашел никакого запроса, который дает правильный результат , Вместо этого я нашел уродливое обходное решение, используя расстояние levenshtein: новые критерии (fieldName) .fuzzy (значение, 1); вместо новых критериев (fieldName).есть (значение); возвращает желаемый набор документов. – jpvee