lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GitBox <...@apache.org>
Subject [GitHub] [lucene-solr] mikemccand commented on a change in pull request #657: LUCENE-8781: FST direct arc addressing
Date Fri, 03 May 2019 08:15:53 GMT
mikemccand commented on a change in pull request #657: LUCENE-8781: FST direct arc addressing
URL: https://github.com/apache/lucene-solr/pull/657#discussion_r280692040
 
 

 ##########
 File path: lucene/core/src/java/org/apache/lucene/util/fst/FST.java
 ##########
 @@ -865,20 +939,32 @@ public int readNextArcLabel(Arc<T> arc, BytesReader in) throws
IOException {
       } else {
         in.setPosition(pos);
       }
+      // skip flags
+      in.readByte();
     } else {
       if (arc.bytesPerArc != 0) {
         //System.out.println("    nextArc real array");
-        // arcs are at fixed entries
-        in.setPosition(arc.posArcsStart);
-        in.skipBytes((1+arc.arcIdx)*arc.bytesPerArc);
+        // arcs are in an array
+        if (arc.arcIdx >= 0) {
+          in.setPosition(arc.posArcsStart);
+          // point at next arc, -1 to skip flags
+          in.skipBytes((1 + arc.arcIdx) * arc.bytesPerArc + 1);
+        } else {
+          in.setPosition(arc.nextArc);
+          byte flags = in.readByte();
+          // skip missing arcs
+          while (flag(flags, BIT_MISSING_ARC)) {
 
 Review comment:
   It would be nice (separate issue) if we could track counters of how many "arc scans" (typically
done by `seekCeil` from Lucene's terms dict) versus "direct lookups" are done, in a typical
use case ... but that's a future issue.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message