Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Overview
Negatives queries (ex. q=NOT foo) always return "No Results" with rq parameter (ex. rq={!rerank reRankQuery=bar}). This is because QueryUtils#makeQueryable doesn't consider RankQuery and fails to modify wrapped pure negative queries to searchable ones (ex. modifies q=NOT foo to q=(NOT foo) AND *:*). Pure negative queries are rewritten as MatchNoDocsQuery by BooleanQuery#rewrite and this results in numFound="0".
How to reproduce
- Prepare solr server according to Solr Tutorial.
- Search with /solr/techproducts/query?q=NOT foo. This returns 52 documents as the result.
- Search with /solr/techproducts/query?q=NOT foo&rq={!rerank reRankQuery=bar}. This returns 0 document (52 documents are expected though...) as the result.
How to fix
Add new API RankQuery#getMainQuery to be able to get the wrapped query from RankQuery, and use it in QueryUtils#makeQueryable to fix the original query if given argument Query q is instance of RankQuery.