@@ -81,15 +81,16 @@ public FSTTermsReader(SegmentReadState state, PostingsReaderBase postingsReader)
8181 state .segmentInfo .name , state .segmentSuffix , FSTTermsWriter .TERMS_DATA_EXTENSION );
8282
8383 this .postingsReader = postingsReader ;
84- this .fstTermsInput =
85- state .directory .openInput (
86- termsFileName , state .context .withHints (FileTypeHint .DATA , PreloadHint .INSTANCE ));
8784
8885 IndexInput metaIn = null , dataIn = null ;
8986
9087 try {
91- metaIn = state .directory .openInput (termsMetaFileName , IOContext .LOAD );
92- dataIn = state .directory .openInput (termsDataFileName , IOContext .LOAD );
88+ metaIn =
89+ state .directory .openInput (
90+ termsMetaFileName , state .context .withHints (FileTypeHint .DATA , PreloadHint .INSTANCE ));
91+ dataIn =
92+ state .directory .openInput (
93+ termsDataFileName , state .context .withHints (FileTypeHint .DATA , PreloadHint .INSTANCE ));
9394
9495 verifyInput (state , metaIn );
9596 verifyInput (state , dataIn );
@@ -118,14 +119,9 @@ public FSTTermsReader(SegmentReadState state, PostingsReaderBase postingsReader)
118119 }
119120 this .fstMetaInput = metaIn ;
120121 this .fstDataInput = dataIn ;
121- success = true ;
122122 } catch (Throwable t ) {
123- IOUtils .closeWhileSuppressingExceptions (t , in );
123+ IOUtils .closeWhileSuppressingExceptions (t , metaIn , dataIn );
124124 throw t ;
125- } finally {
126- if (success == false ) {
127- IOUtils .closeWhileHandlingException (metaIn , dataIn );
128- }
129125 }
130126 }
131127
@@ -220,7 +216,10 @@ final class TermsReader extends Terms {
220216 this .sumDocFreq = sumDocFreq ;
221217 this .docCount = docCount ;
222218 FSTTermOutputs outputs = new FSTTermOutputs (fieldInfo );
223- this .dict = new FST <>(FST .readMetadata (metaIn , outputs ), dataIn , offHeapFSTStore );
219+ final var fstMetadata = FST .readMetadata (metaIn , outputs );
220+ OffHeapFSTStore offHeapFSTStore =
221+ new OffHeapFSTStore (dataIn , dataIn .getFilePointer (), fstMetadata );
222+ this .dict = FST .fromFSTReader (fstMetadata , offHeapFSTStore );
224223 dataIn .skipBytes (offHeapFSTStore .size ());
225224 }
226225
0 commit comments