Solr в настоящее время проверяет «чисто отрицательный» запрос и вставляет *:*
(который соответствует всем документам), чтобы он работал правильно.
-foo
преобразовывается с помощью solr в (*:* -foo)
Большое предостережение в том, что Solr проверяет только, является ли запрос верхнего уровня чисто отрицательным запросом!
Таким образом, это означает, что запрос типа bar OR (-foo)
не изменяется, поскольку чисто отрицательный запрос находится в подпункте запроса верхнего уровня. Вам нужно самостоятельно преобразовать этот запрос в bar OR (*:* -foo)
Вы можете проверить объяснение запроса solr, чтобы проверить преобразование запроса:
?q=-title:foo&debug=query
преобразуется в
(+(-title:foo +MatchAllDocsQuery(*:*))