You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by tf...@apache.org on 2022/01/07 19:41:39 UTC

[lucene-solr] branch branch_8_11 updated: SOLR-15854: Let RealtimeGet component support negative filters

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

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


The following commit(s) were added to refs/heads/branch_8_11 by this push:
     new 004382ab SOLR-15854: Let RealtimeGet component support negative filters
004382ab is described below

commit 004382ab2be1035d4ef4d6119554f665c9a3e1bd
Author: Tomas Fernandez Lobbe <tf...@apache.org>
AuthorDate: Fri Jan 7 11:39:37 2022 -0800

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

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index fb9f213..e7e7929 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -12,6 +12,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.1 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
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 eafc39c..faf1093 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
@@ -44,6 +44,7 @@ import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.Query;
+import org.apache.solr.search.QueryUtils;
 import org.apache.lucene.search.ScoreMode;
 import org.apache.lucene.search.Scorer;
 import org.apache.lucene.util.BytesRef;
@@ -209,7 +210,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 b0f684e..aac8b72 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRealTimeGet.java
@@ -212,6 +212,13 @@ public class TestRealTimeGet extends TestRTGBase {
         ,"/response/docs==[{id:'16'},{id:'15'}]"
     );
 
+    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();