This is an automated email from the ASF dual-hosted git repository.

tflobbe pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 23f2643  SOLR-15854: Let RealtimeGet component support negative 
filters (#459)
23f2643 is described below

commit 23f2643406689df7663718f7abd34efe5040168e
Author: Tomas Fernandez Lobbe <[email protected]>
AuthorDate: Fri Jan 7 09:50:25 2022 -0800

    SOLR-15854: Let RealtimeGet component support negative filters (#459)
---
 solr/CHANGES.txt                                                  | 2 ++
 .../org/apache/solr/handler/component/RealTimeGetComponent.java   | 3 ++-
 solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java    | 8 ++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 0c4b8aa..c014757 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -485,6 +485,8 @@ Bug Fixes
 
 * SOLR-15871: Update Log4J to 2.17.1 (weidongkl via janhoy)
 
+* SOLR-15854: Let RealtimeGet component support negative filters (Tomás 
Fernández Löbbe)
+
 ==================  8.11.2 ==================
 
 Bug Fixes
diff --git 
a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
 
b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
index d965cb7..25bbbae 100644
--- 
a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
+++ 
b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
@@ -79,6 +79,7 @@ import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.DocList;
 import org.apache.solr.search.QParser;
+import org.apache.solr.search.QueryUtils;
 import org.apache.solr.search.ReturnFields;
 import org.apache.solr.search.SolrDocumentFetcher;
 import org.apache.solr.search.SolrIndexSearcher;
@@ -208,7 +209,7 @@ public class RealTimeGetComponent extends SearchComponent
         for (String fq : fqs) {
           if (fq != null && fq.trim().length()!=0) {
             QParser fqp = QParser.getParser(fq, req);
-            filters.add(fqp.getQuery());
+            filters.add(QueryUtils.makeQueryable(fqp.getQuery()));
           }
         }
         if (!filters.isEmpty()) {
diff --git a/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java 
b/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
index 6e1b300..f1c5555 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
@@ -211,6 +211,14 @@ public class TestRealTimeGet extends TestRTGBase {
         ,"/response/docs==[{id:'16'},{id:'15'}]"
     );
 
+    // test with negative filter
+    assertJQ(req("qt","/get","ids","15,14", "fl","id", "fq","-id:15")
+            ,"/response/docs==[{id:'14'}]"
+    );
+    assertJQ(req("qt","/get","ids","17,16,15,14", "fl","id", "fq","-id:[15 TO 
17]")
+            ,"/response/docs==[{id:'14'}]"
+    );
+
     realtimeHolder.decref();
     req.close();
 

Reply via email to