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();