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

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

commit c66a3cf4ff6b531ed87b65f54fe3f73d5e810f16
Author: dan-s1 <dsti...@gmail.com>
AuthorDate: Fri May 10 20:27:50 2024 +0000

    NIFI-13214 Replaced deprecated Lucene IndexReader methods with StoredFields
    
    This closes #8815
    
    Signed-off-by: David Handermann <exceptionfact...@apache.org>
---
 .../apache/nifi/provenance/index/lucene/LuceneEventIndex.java    | 4 +++-
 .../java/org/apache/nifi/provenance/index/lucene/QueryTask.java  | 9 ++++++---
 .../main/java/org/apache/nifi/provenance/lucene/DocsReader.java  | 4 +++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/LuceneEventIndex.java
 
b/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/LuceneEventIndex.java
index 45dabfd999..60f444f988 100644
--- 
a/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/LuceneEventIndex.java
+++ 
b/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/LuceneEventIndex.java
@@ -19,6 +19,7 @@ package org.apache.nifi.provenance.index.lucene;
 
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.StoredFields;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -333,8 +334,9 @@ public class LuceneEventIndex implements EventIndex {
 
             try {
                 final IndexReader reader = 
searcher.getIndexSearcher().getIndexReader();
+                final StoredFields storedFields = reader.storedFields();
                 final int maxDocId = reader.maxDoc() - 1;
-                final Document document = reader.document(maxDocId);
+                final Document document = storedFields.document(maxDocId);
                 final long eventId = 
document.getField(SearchableFields.Identifier.getSearchableFieldName()).numericValue().longValue();
                 logger.info("Determined that Max Event ID indexed for 
Partition {} is approximately {} based on index {}", partitionName, eventId, 
directory);
                 return eventId;
diff --git 
a/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/QueryTask.java
 
b/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/QueryTask.java
index 368a19dc38..a6ef58a22b 100644
--- 
a/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/QueryTask.java
+++ 
b/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/QueryTask.java
@@ -18,6 +18,7 @@
 package org.apache.nifi.provenance.index.lucene;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.StoredFields;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
@@ -125,7 +126,9 @@ public class QueryTask implements Runnable {
             // Query lucene
             final IndexReader indexReader = 
searcher.getIndexSearcher().getIndexReader();
             final TopDocs topDocs;
+            final StoredFields storedFields;
             try {
+               storedFields = indexReader.storedFields();
 
                 // Sort based on document id, descending. This gives us most 
recent events first.
                 final Sort sort = new Sort(new SortField(null, 
SortField.Type.DOC, true));
@@ -152,7 +155,7 @@ public class QueryTask implements Runnable {
                 return;
             }
 
-            final Tuple<List<ProvenanceEventRecord>, Long> eventsAndTotalHits 
= readDocuments(topDocs, indexReader);
+            final Tuple<List<ProvenanceEventRecord>, Long> eventsAndTotalHits 
= readDocuments(topDocs, storedFields);
 
             if (eventsAndTotalHits == null) {
                 queryResult.update(Collections.emptyList(), 0L);
@@ -174,7 +177,7 @@ public class QueryTask implements Runnable {
         }
     }
 
-    private Tuple<List<ProvenanceEventRecord>, Long> readDocuments(final 
TopDocs topDocs, final IndexReader indexReader) {
+    private Tuple<List<ProvenanceEventRecord>, Long> readDocuments(final 
TopDocs topDocs, final StoredFields storedFields) {
         // If no topDocs is supplied, just provide a Tuple that has no records 
and a hit count of 0.
         if (topDocs == null || topDocs.totalHits.value == 0) {
             return new Tuple<>(Collections.<ProvenanceEventRecord> 
emptyList(), 0L);
@@ -185,7 +188,7 @@ public class QueryTask implements Runnable {
             .mapToInt(scoreDoc -> scoreDoc.doc)
             .mapToObj(docId -> {
                 try {
-                    return indexReader.document(docId, LUCENE_FIELDS_TO_LOAD);
+                    return storedFields.document(docId, LUCENE_FIELDS_TO_LOAD);
                 } catch (final Exception e) {
                     throw new SearchFailedException("Failed to read Provenance 
Events from Event File", e);
                 }
diff --git 
a/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java
 
b/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java
index 0e96b6248f..e62900d324 100644
--- 
a/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java
+++ 
b/nifi-extension-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java
@@ -33,6 +33,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.index.StoredFields;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TopDocs;
 import org.apache.nifi.provenance.ProvenanceEventRecord;
@@ -58,10 +59,11 @@ public class DocsReader {
         final ScoreDoc[] scoreDocs = topDocs.scoreDocs;
         final int numDocs = Math.min(scoreDocs.length, maxResults);
         final List<Document> docs = new ArrayList<>(numDocs);
+        final StoredFields storedFields = indexReader.storedFields();
 
         for (int i = numDocs - 1; i >= 0; i--) {
             final int docId = scoreDocs[i].doc;
-            final Document d = indexReader.document(docId);
+            final Document d = storedFields.document(docId);
             docs.add(d);
         }
 

Reply via email to