klsince commented on code in PR #10184:
URL: https://github.com/apache/pinot/pull/10184#discussion_r1148051608


##########
pinot-spi/src/main/java/org/apache/pinot/spi/config/table/JsonIndexConfig.java:
##########
@@ -38,14 +39,25 @@
  *                 to be excluded.
  * - excludeFields: Exclude the given fields, e.g. "b", "c", even if it is 
under the included paths.
  */
-public class JsonIndexConfig extends BaseJsonConfig {
+public class JsonIndexConfig extends IndexConfig {

Review Comment:
   looks like those XXXIndexConfig.java files are spread in many pkgs, should 
they be centralized? 



##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/fwd/AbstractForwardIndexCreator.java:
##########
@@ -16,10 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.segment.spi.index.reader.provider;
 
-public interface IndexReaderProvider
-    extends BloomFilterReaderProvider, ForwardIndexReaderProvider, 
GeospatialIndexReaderProvider,
-            InvertedIndexReaderProvider, JsonIndexReaderProvider, 
RangeIndexReaderProvider, SortedIndexReaderProvider,
-            TextIndexReaderProvider {
+package org.apache.pinot.segment.local.segment.creator.impl.fwd;
+
+import java.io.IOException;
+import org.apache.pinot.segment.spi.index.creator.ForwardIndexCreator;
+
+
+public abstract class AbstractForwardIndexCreator implements 
ForwardIndexCreator {
+  @Override
+  public void seal()

Review Comment:
   add a default seal() in ForwardIndexCreator? and save changes in the next 
few fwd index creator classes. 



##########
pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/creator/H3IndexConfig.java:
##########
@@ -18,20 +18,38 @@
  */
 package org.apache.pinot.segment.spi.index.creator;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.Preconditions;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import javax.annotation.Nullable;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.pinot.segment.spi.index.reader.H3IndexResolution;
+import org.apache.pinot.spi.config.table.IndexConfig;
 
 
-public class H3IndexConfig {
+public class H3IndexConfig extends IndexConfig {

Review Comment:
   Move this file into /index package where all other XXXConfig.java files are 
kept?



##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/inv/geospatial/BaseH3IndexCreator.java:
##########
@@ -101,6 +102,11 @@ public abstract class BaseH3IndexCreator implements 
GeoSpatialIndexCreator {
     _lowestResolution = resolution.getLowestResolution();
   }
 
+  @Override
+  public Geometry deserialize(byte[] bytes) {

Review Comment:
   for 
   ```
   _indexFile = new File(indexDir, columnName + 
V1Constants.Indexes.H3_INDEX_FILE_EXTENSION);
   ```
   in the BaseH3IndexCreator() above, should it use 
H3IndexType.INSTANCE.getFileExtension() instead? and same for a few other index 
creator classes below. 



##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/text/NativeTextIndexCreator.java:
##########
@@ -73,7 +75,8 @@ public class NativeTextIndexCreator implements 
TextIndexCreator {
   private int _fstDataSize;
   private int _numBitMaps;
 
-  public NativeTextIndexCreator(String column, File indexDir)
+  public NativeTextIndexCreator(String column, File indexDir,
+      @Nullable Object rawValueForTextIndex, FieldSpec fieldSpec)

Review Comment:
   no use of the two new params? 



##########
pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/creator/TextIndexCreator.java:
##########
@@ -18,14 +18,22 @@
  */
 package org.apache.pinot.segment.spi.index.creator;
 
-import java.io.Closeable;
 import java.io.IOException;
+import org.apache.pinot.segment.spi.index.IndexCreator;
 
 
 /**
- * Index creator for text index.
+ * Index creator for both text and FST indexes.
+ *
+ * This abstraction is not great. Text and FST indexes are quite different and 
in fact they way they are created is not

Review Comment:
   ... in fact `the` way...



##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/inv/text/LuceneFSTIndexCreator.java:
##########
@@ -21,11 +21,14 @@
 import java.io.File;

Review Comment:
   how about add a FSTIndexCreator interface to separate FST and Text index 
clearly.  



##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/fwd/SameValueForwardIndexCreator.java:
##########
@@ -0,0 +1,137 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pinot.segment.local.segment.creator.impl.fwd;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import org.apache.pinot.spi.data.FieldSpec;
+
+
+public class SameValueForwardIndexCreator extends AbstractForwardIndexCreator {

Review Comment:
   add a comment about this class, which seems only used for TextIndexCreator 
as the fakeValueFwdCreator. If so, maybe make this an inner class or pkg 
private class only available for TextIndexCreator.



-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to