All Downloads are FREE. Search and download functionalities are using the official Maven repository.

vectorindex.Vectorindex Maven / Gradle / Ivy

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: vectorindex.proto

package vectorindex;

public final class Vectorindex {
  private Vectorindex() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface _ItemOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._Item)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * .vectorindex._Vector vector = 2;
     * @return Whether the vector field is set.
     */
    boolean hasVector();
    /**
     * .vectorindex._Vector vector = 2;
     * @return The vector.
     */
    vectorindex.Vectorindex._Vector getVector();
    /**
     * .vectorindex._Vector vector = 2;
     */
    vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder();

    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    java.util.List 
        getMetadataList();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    vectorindex.Vectorindex._Metadata getMetadata(int index);
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    int getMetadataCount();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    java.util.List 
        getMetadataOrBuilderList();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._Item}
   */
  public static final class _Item extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._Item)
      _ItemOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _Item.newBuilder() to construct.
    private _Item(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _Item() {
      id_ = "";
      metadata_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _Item();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__Item_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__Item_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._Item.class, vectorindex.Vectorindex._Item.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object id_ = "";
    /**
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VECTOR_FIELD_NUMBER = 2;
    private vectorindex.Vectorindex._Vector vector_;
    /**
     * .vectorindex._Vector vector = 2;
     * @return Whether the vector field is set.
     */
    @java.lang.Override
    public boolean hasVector() {
      return vector_ != null;
    }
    /**
     * .vectorindex._Vector vector = 2;
     * @return The vector.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Vector getVector() {
      return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
    }
    /**
     * .vectorindex._Vector vector = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder() {
      return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
    }

    public static final int METADATA_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List metadata_;
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public java.util.List getMetadataList() {
      return metadata_;
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public java.util.List 
        getMetadataOrBuilderList() {
      return metadata_;
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public int getMetadataCount() {
      return metadata_.size();
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Metadata getMetadata(int index) {
      return metadata_.get(index);
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
        int index) {
      return metadata_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (vector_ != null) {
        output.writeMessage(2, getVector());
      }
      for (int i = 0; i < metadata_.size(); i++) {
        output.writeMessage(3, metadata_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (vector_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getVector());
      }
      for (int i = 0; i < metadata_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, metadata_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._Item)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._Item other = (vectorindex.Vectorindex._Item) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (hasVector() != other.hasVector()) return false;
      if (hasVector()) {
        if (!getVector()
            .equals(other.getVector())) return false;
      }
      if (!getMetadataList()
          .equals(other.getMetadataList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      if (hasVector()) {
        hash = (37 * hash) + VECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getVector().hashCode();
      }
      if (getMetadataCount() > 0) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._Item parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Item parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Item parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Item parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Item parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Item parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._Item prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._Item}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._Item)
        vectorindex.Vectorindex._ItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Item_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Item_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._Item.class, vectorindex.Vectorindex._Item.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._Item.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = "";
        vector_ = null;
        if (vectorBuilder_ != null) {
          vectorBuilder_.dispose();
          vectorBuilder_ = null;
        }
        if (metadataBuilder_ == null) {
          metadata_ = java.util.Collections.emptyList();
        } else {
          metadata_ = null;
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Item_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Item getDefaultInstanceForType() {
        return vectorindex.Vectorindex._Item.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Item build() {
        vectorindex.Vectorindex._Item result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Item buildPartial() {
        vectorindex.Vectorindex._Item result = new vectorindex.Vectorindex._Item(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._Item result) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            metadata_ = java.util.Collections.unmodifiableList(metadata_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._Item result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.vector_ = vectorBuilder_ == null
              ? vector_
              : vectorBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._Item) {
          return mergeFrom((vectorindex.Vectorindex._Item)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._Item other) {
        if (other == vectorindex.Vectorindex._Item.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasVector()) {
          mergeVector(other.getVector());
        }
        if (metadataBuilder_ == null) {
          if (!other.metadata_.isEmpty()) {
            if (metadata_.isEmpty()) {
              metadata_ = other.metadata_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureMetadataIsMutable();
              metadata_.addAll(other.metadata_);
            }
            onChanged();
          }
        } else {
          if (!other.metadata_.isEmpty()) {
            if (metadataBuilder_.isEmpty()) {
              metadataBuilder_.dispose();
              metadataBuilder_ = null;
              metadata_ = other.metadata_;
              bitField0_ = (bitField0_ & ~0x00000004);
              metadataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMetadataFieldBuilder() : null;
            } else {
              metadataBuilder_.addAllMessages(other.metadata_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getVectorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                vectorindex.Vectorindex._Metadata m =
                    input.readMessage(
                        vectorindex.Vectorindex._Metadata.parser(),
                        extensionRegistry);
                if (metadataBuilder_ == null) {
                  ensureMetadataIsMutable();
                  metadata_.add(m);
                } else {
                  metadataBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        id_ = getDefaultInstance().getId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private vectorindex.Vectorindex._Vector vector_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> vectorBuilder_;
      /**
       * .vectorindex._Vector vector = 2;
       * @return Whether the vector field is set.
       */
      public boolean hasVector() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * .vectorindex._Vector vector = 2;
       * @return The vector.
       */
      public vectorindex.Vectorindex._Vector getVector() {
        if (vectorBuilder_ == null) {
          return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
        } else {
          return vectorBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      public Builder setVector(vectorindex.Vectorindex._Vector value) {
        if (vectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vector_ = value;
        } else {
          vectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      public Builder setVector(
          vectorindex.Vectorindex._Vector.Builder builderForValue) {
        if (vectorBuilder_ == null) {
          vector_ = builderForValue.build();
        } else {
          vectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      public Builder mergeVector(vectorindex.Vectorindex._Vector value) {
        if (vectorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            vector_ != null &&
            vector_ != vectorindex.Vectorindex._Vector.getDefaultInstance()) {
            getVectorBuilder().mergeFrom(value);
          } else {
            vector_ = value;
          }
        } else {
          vectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      public Builder clearVector() {
        bitField0_ = (bitField0_ & ~0x00000002);
        vector_ = null;
        if (vectorBuilder_ != null) {
          vectorBuilder_.dispose();
          vectorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      public vectorindex.Vectorindex._Vector.Builder getVectorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVectorFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      public vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder() {
        if (vectorBuilder_ != null) {
          return vectorBuilder_.getMessageOrBuilder();
        } else {
          return vector_ == null ?
              vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
        }
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> 
          getVectorFieldBuilder() {
        if (vectorBuilder_ == null) {
          vectorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder>(
                  getVector(),
                  getParentForChildren(),
                  isClean());
          vector_ = null;
        }
        return vectorBuilder_;
      }

      private java.util.List metadata_ =
        java.util.Collections.emptyList();
      private void ensureMetadataIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          metadata_ = new java.util.ArrayList(metadata_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> metadataBuilder_;

      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List getMetadataList() {
        if (metadataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metadata_);
        } else {
          return metadataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public int getMetadataCount() {
        if (metadataBuilder_ == null) {
          return metadata_.size();
        } else {
          return metadataBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata getMetadata(int index) {
        if (metadataBuilder_ == null) {
          return metadata_.get(index);
        } else {
          return metadataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder setMetadata(
          int index, vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.set(index, value);
          onChanged();
        } else {
          metadataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder setMetadata(
          int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.set(index, builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.add(value);
          onChanged();
        } else {
          metadataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          int index, vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.add(index, value);
          onChanged();
        } else {
          metadataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.add(builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.add(index, builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addAllMetadata(
          java.lang.Iterable values) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, metadata_);
          onChanged();
        } else {
          metadataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder removeMetadata(int index) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.remove(index);
          onChanged();
        } else {
          metadataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder getMetadataBuilder(
          int index) {
        return getMetadataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index) {
        if (metadataBuilder_ == null) {
          return metadata_.get(index);  } else {
          return metadataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List 
           getMetadataOrBuilderList() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metadata_);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder() {
        return getMetadataFieldBuilder().addBuilder(
            vectorindex.Vectorindex._Metadata.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder(
          int index) {
        return getMetadataFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._Metadata.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List 
           getMetadataBuilderList() {
        return getMetadataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> 
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder>(
                  metadata_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._Item)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._Item)
    private static final vectorindex.Vectorindex._Item DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._Item();
    }

    public static vectorindex.Vectorindex._Item getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_Item>
        PARSER = new com.google.protobuf.AbstractParser<_Item>() {
      @java.lang.Override
      public _Item parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_Item> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_Item> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._Item getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _UpsertItemBatchRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._UpsertItemBatchRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * repeated .vectorindex._Item items = 2;
     */
    java.util.List 
        getItemsList();
    /**
     * repeated .vectorindex._Item items = 2;
     */
    vectorindex.Vectorindex._Item getItems(int index);
    /**
     * repeated .vectorindex._Item items = 2;
     */
    int getItemsCount();
    /**
     * repeated .vectorindex._Item items = 2;
     */
    java.util.List 
        getItemsOrBuilderList();
    /**
     * repeated .vectorindex._Item items = 2;
     */
    vectorindex.Vectorindex._ItemOrBuilder getItemsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._UpsertItemBatchRequest}
   */
  public static final class _UpsertItemBatchRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._UpsertItemBatchRequest)
      _UpsertItemBatchRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _UpsertItemBatchRequest.newBuilder() to construct.
    private _UpsertItemBatchRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _UpsertItemBatchRequest() {
      indexName_ = "";
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _UpsertItemBatchRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._UpsertItemBatchRequest.class, vectorindex.Vectorindex._UpsertItemBatchRequest.Builder.class);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List items_;
    /**
     * repeated .vectorindex._Item items = 2;
     */
    @java.lang.Override
    public java.util.List getItemsList() {
      return items_;
    }
    /**
     * repeated .vectorindex._Item items = 2;
     */
    @java.lang.Override
    public java.util.List 
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     * repeated .vectorindex._Item items = 2;
     */
    @java.lang.Override
    public int getItemsCount() {
      return items_.size();
    }
    /**
     * repeated .vectorindex._Item items = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Item getItems(int index) {
      return items_.get(index);
    }
    /**
     * repeated .vectorindex._Item items = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemOrBuilder getItemsOrBuilder(
        int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, items_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._UpsertItemBatchRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._UpsertItemBatchRequest other = (vectorindex.Vectorindex._UpsertItemBatchRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (!getItemsList()
          .equals(other.getItemsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._UpsertItemBatchRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._UpsertItemBatchRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._UpsertItemBatchRequest)
        vectorindex.Vectorindex._UpsertItemBatchRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._UpsertItemBatchRequest.class, vectorindex.Vectorindex._UpsertItemBatchRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._UpsertItemBatchRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
        } else {
          items_ = null;
          itemsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._UpsertItemBatchRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._UpsertItemBatchRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._UpsertItemBatchRequest build() {
        vectorindex.Vectorindex._UpsertItemBatchRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._UpsertItemBatchRequest buildPartial() {
        vectorindex.Vectorindex._UpsertItemBatchRequest result = new vectorindex.Vectorindex._UpsertItemBatchRequest(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._UpsertItemBatchRequest result) {
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._UpsertItemBatchRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._UpsertItemBatchRequest) {
          return mergeFrom((vectorindex.Vectorindex._UpsertItemBatchRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._UpsertItemBatchRequest other) {
        if (other == vectorindex.Vectorindex._UpsertItemBatchRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getItemsFieldBuilder() : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                vectorindex.Vectorindex._Item m =
                    input.readMessage(
                        vectorindex.Vectorindex._Item.parser(),
                        extensionRegistry);
                if (itemsBuilder_ == null) {
                  ensureItemsIsMutable();
                  items_.add(m);
                } else {
                  itemsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.util.List items_ =
        java.util.Collections.emptyList();
      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          items_ = new java.util.ArrayList(items_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Item, vectorindex.Vectorindex._Item.Builder, vectorindex.Vectorindex._ItemOrBuilder> itemsBuilder_;

      /**
       * repeated .vectorindex._Item items = 2;
       */
      public java.util.List getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public vectorindex.Vectorindex._Item getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder setItems(
          int index, vectorindex.Vectorindex._Item value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder setItems(
          int index, vectorindex.Vectorindex._Item.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder addItems(vectorindex.Vectorindex._Item value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder addItems(
          int index, vectorindex.Vectorindex._Item value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder addItems(
          vectorindex.Vectorindex._Item.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder addItems(
          int index, vectorindex.Vectorindex._Item.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder addAllItems(
          java.lang.Iterable values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public vectorindex.Vectorindex._Item.Builder getItemsBuilder(
          int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public vectorindex.Vectorindex._ItemOrBuilder getItemsOrBuilder(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);  } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public java.util.List 
           getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public vectorindex.Vectorindex._Item.Builder addItemsBuilder() {
        return getItemsFieldBuilder().addBuilder(
            vectorindex.Vectorindex._Item.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public vectorindex.Vectorindex._Item.Builder addItemsBuilder(
          int index) {
        return getItemsFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._Item.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Item items = 2;
       */
      public java.util.List 
           getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Item, vectorindex.Vectorindex._Item.Builder, vectorindex.Vectorindex._ItemOrBuilder> 
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._Item, vectorindex.Vectorindex._Item.Builder, vectorindex.Vectorindex._ItemOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._UpsertItemBatchRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._UpsertItemBatchRequest)
    private static final vectorindex.Vectorindex._UpsertItemBatchRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._UpsertItemBatchRequest();
    }

    public static vectorindex.Vectorindex._UpsertItemBatchRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_UpsertItemBatchRequest>
        PARSER = new com.google.protobuf.AbstractParser<_UpsertItemBatchRequest>() {
      @java.lang.Override
      public _UpsertItemBatchRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_UpsertItemBatchRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_UpsertItemBatchRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._UpsertItemBatchRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _UpsertItemBatchResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._UpsertItemBatchResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated uint32 error_indices = 1;
     * @return A list containing the errorIndices.
     */
    java.util.List getErrorIndicesList();
    /**
     * repeated uint32 error_indices = 1;
     * @return The count of errorIndices.
     */
    int getErrorIndicesCount();
    /**
     * repeated uint32 error_indices = 1;
     * @param index The index of the element to return.
     * @return The errorIndices at the given index.
     */
    int getErrorIndices(int index);
  }
  /**
   * Protobuf type {@code vectorindex._UpsertItemBatchResponse}
   */
  public static final class _UpsertItemBatchResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._UpsertItemBatchResponse)
      _UpsertItemBatchResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _UpsertItemBatchResponse.newBuilder() to construct.
    private _UpsertItemBatchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _UpsertItemBatchResponse() {
      errorIndices_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _UpsertItemBatchResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._UpsertItemBatchResponse.class, vectorindex.Vectorindex._UpsertItemBatchResponse.Builder.class);
    }

    public static final int ERROR_INDICES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList errorIndices_;
    /**
     * repeated uint32 error_indices = 1;
     * @return A list containing the errorIndices.
     */
    @java.lang.Override
    public java.util.List
        getErrorIndicesList() {
      return errorIndices_;
    }
    /**
     * repeated uint32 error_indices = 1;
     * @return The count of errorIndices.
     */
    public int getErrorIndicesCount() {
      return errorIndices_.size();
    }
    /**
     * repeated uint32 error_indices = 1;
     * @param index The index of the element to return.
     * @return The errorIndices at the given index.
     */
    public int getErrorIndices(int index) {
      return errorIndices_.getInt(index);
    }
    private int errorIndicesMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getErrorIndicesList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(errorIndicesMemoizedSerializedSize);
      }
      for (int i = 0; i < errorIndices_.size(); i++) {
        output.writeUInt32NoTag(errorIndices_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < errorIndices_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(errorIndices_.getInt(i));
        }
        size += dataSize;
        if (!getErrorIndicesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        errorIndicesMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._UpsertItemBatchResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._UpsertItemBatchResponse other = (vectorindex.Vectorindex._UpsertItemBatchResponse) obj;

      if (!getErrorIndicesList()
          .equals(other.getErrorIndicesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getErrorIndicesCount() > 0) {
        hash = (37 * hash) + ERROR_INDICES_FIELD_NUMBER;
        hash = (53 * hash) + getErrorIndicesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._UpsertItemBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._UpsertItemBatchResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._UpsertItemBatchResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._UpsertItemBatchResponse)
        vectorindex.Vectorindex._UpsertItemBatchResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._UpsertItemBatchResponse.class, vectorindex.Vectorindex._UpsertItemBatchResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._UpsertItemBatchResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        errorIndices_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__UpsertItemBatchResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._UpsertItemBatchResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._UpsertItemBatchResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._UpsertItemBatchResponse build() {
        vectorindex.Vectorindex._UpsertItemBatchResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._UpsertItemBatchResponse buildPartial() {
        vectorindex.Vectorindex._UpsertItemBatchResponse result = new vectorindex.Vectorindex._UpsertItemBatchResponse(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._UpsertItemBatchResponse result) {
        if (((bitField0_ & 0x00000001) != 0)) {
          errorIndices_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.errorIndices_ = errorIndices_;
      }

      private void buildPartial0(vectorindex.Vectorindex._UpsertItemBatchResponse result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._UpsertItemBatchResponse) {
          return mergeFrom((vectorindex.Vectorindex._UpsertItemBatchResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._UpsertItemBatchResponse other) {
        if (other == vectorindex.Vectorindex._UpsertItemBatchResponse.getDefaultInstance()) return this;
        if (!other.errorIndices_.isEmpty()) {
          if (errorIndices_.isEmpty()) {
            errorIndices_ = other.errorIndices_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureErrorIndicesIsMutable();
            errorIndices_.addAll(other.errorIndices_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int v = input.readUInt32();
                ensureErrorIndicesIsMutable();
                errorIndices_.addInt(v);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureErrorIndicesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  errorIndices_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.IntList errorIndices_ = emptyIntList();
      private void ensureErrorIndicesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          errorIndices_ = mutableCopy(errorIndices_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       * repeated uint32 error_indices = 1;
       * @return A list containing the errorIndices.
       */
      public java.util.List
          getErrorIndicesList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(errorIndices_) : errorIndices_;
      }
      /**
       * repeated uint32 error_indices = 1;
       * @return The count of errorIndices.
       */
      public int getErrorIndicesCount() {
        return errorIndices_.size();
      }
      /**
       * repeated uint32 error_indices = 1;
       * @param index The index of the element to return.
       * @return The errorIndices at the given index.
       */
      public int getErrorIndices(int index) {
        return errorIndices_.getInt(index);
      }
      /**
       * repeated uint32 error_indices = 1;
       * @param index The index to set the value at.
       * @param value The errorIndices to set.
       * @return This builder for chaining.
       */
      public Builder setErrorIndices(
          int index, int value) {

        ensureErrorIndicesIsMutable();
        errorIndices_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 error_indices = 1;
       * @param value The errorIndices to add.
       * @return This builder for chaining.
       */
      public Builder addErrorIndices(int value) {

        ensureErrorIndicesIsMutable();
        errorIndices_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 error_indices = 1;
       * @param values The errorIndices to add.
       * @return This builder for chaining.
       */
      public Builder addAllErrorIndices(
          java.lang.Iterable values) {
        ensureErrorIndicesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, errorIndices_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 error_indices = 1;
       * @return This builder for chaining.
       */
      public Builder clearErrorIndices() {
        errorIndices_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._UpsertItemBatchResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._UpsertItemBatchResponse)
    private static final vectorindex.Vectorindex._UpsertItemBatchResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._UpsertItemBatchResponse();
    }

    public static vectorindex.Vectorindex._UpsertItemBatchResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_UpsertItemBatchResponse>
        PARSER = new com.google.protobuf.AbstractParser<_UpsertItemBatchResponse>() {
      @java.lang.Override
      public _UpsertItemBatchResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_UpsertItemBatchResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_UpsertItemBatchResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._UpsertItemBatchResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _DeleteItemBatchRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._DeleteItemBatchRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * repeated string ids = 2;
     * @return A list containing the ids.
     */
    java.util.List
        getIdsList();
    /**
     * repeated string ids = 2;
     * @return The count of ids.
     */
    int getIdsCount();
    /**
     * repeated string ids = 2;
     * @param index The index of the element to return.
     * @return The ids at the given index.
     */
    java.lang.String getIds(int index);
    /**
     * repeated string ids = 2;
     * @param index The index of the value to return.
     * @return The bytes of the ids at the given index.
     */
    com.google.protobuf.ByteString
        getIdsBytes(int index);
  }
  /**
   * Protobuf type {@code vectorindex._DeleteItemBatchRequest}
   */
  public static final class _DeleteItemBatchRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._DeleteItemBatchRequest)
      _DeleteItemBatchRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _DeleteItemBatchRequest.newBuilder() to construct.
    private _DeleteItemBatchRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _DeleteItemBatchRequest() {
      indexName_ = "";
      ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _DeleteItemBatchRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._DeleteItemBatchRequest.class, vectorindex.Vectorindex._DeleteItemBatchRequest.Builder.class);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IDS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList ids_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string ids = 2;
     * @return A list containing the ids.
     */
    public com.google.protobuf.ProtocolStringList
        getIdsList() {
      return ids_;
    }
    /**
     * repeated string ids = 2;
     * @return The count of ids.
     */
    public int getIdsCount() {
      return ids_.size();
    }
    /**
     * repeated string ids = 2;
     * @param index The index of the element to return.
     * @return The ids at the given index.
     */
    public java.lang.String getIds(int index) {
      return ids_.get(index);
    }
    /**
     * repeated string ids = 2;
     * @param index The index of the value to return.
     * @return The bytes of the ids at the given index.
     */
    public com.google.protobuf.ByteString
        getIdsBytes(int index) {
      return ids_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      for (int i = 0; i < ids_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ids_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ids_.size(); i++) {
          dataSize += computeStringSizeNoTag(ids_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getIdsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._DeleteItemBatchRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._DeleteItemBatchRequest other = (vectorindex.Vectorindex._DeleteItemBatchRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (!getIdsList()
          .equals(other.getIdsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      if (getIdsCount() > 0) {
        hash = (37 * hash) + IDS_FIELD_NUMBER;
        hash = (53 * hash) + getIdsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._DeleteItemBatchRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._DeleteItemBatchRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._DeleteItemBatchRequest)
        vectorindex.Vectorindex._DeleteItemBatchRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._DeleteItemBatchRequest.class, vectorindex.Vectorindex._DeleteItemBatchRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._DeleteItemBatchRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        ids_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._DeleteItemBatchRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._DeleteItemBatchRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._DeleteItemBatchRequest build() {
        vectorindex.Vectorindex._DeleteItemBatchRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._DeleteItemBatchRequest buildPartial() {
        vectorindex.Vectorindex._DeleteItemBatchRequest result = new vectorindex.Vectorindex._DeleteItemBatchRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._DeleteItemBatchRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          ids_.makeImmutable();
          result.ids_ = ids_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._DeleteItemBatchRequest) {
          return mergeFrom((vectorindex.Vectorindex._DeleteItemBatchRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._DeleteItemBatchRequest other) {
        if (other == vectorindex.Vectorindex._DeleteItemBatchRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.ids_.isEmpty()) {
          if (ids_.isEmpty()) {
            ids_ = other.ids_;
            bitField0_ |= 0x00000002;
          } else {
            ensureIdsIsMutable();
            ids_.addAll(other.ids_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureIdsIsMutable();
                ids_.add(s);
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureIdsIsMutable() {
        if (!ids_.isModifiable()) {
          ids_ = new com.google.protobuf.LazyStringArrayList(ids_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string ids = 2;
       * @return A list containing the ids.
       */
      public com.google.protobuf.ProtocolStringList
          getIdsList() {
        ids_.makeImmutable();
        return ids_;
      }
      /**
       * repeated string ids = 2;
       * @return The count of ids.
       */
      public int getIdsCount() {
        return ids_.size();
      }
      /**
       * repeated string ids = 2;
       * @param index The index of the element to return.
       * @return The ids at the given index.
       */
      public java.lang.String getIds(int index) {
        return ids_.get(index);
      }
      /**
       * repeated string ids = 2;
       * @param index The index of the value to return.
       * @return The bytes of the ids at the given index.
       */
      public com.google.protobuf.ByteString
          getIdsBytes(int index) {
        return ids_.getByteString(index);
      }
      /**
       * repeated string ids = 2;
       * @param index The index to set the value at.
       * @param value The ids to set.
       * @return This builder for chaining.
       */
      public Builder setIds(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureIdsIsMutable();
        ids_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param value The ids to add.
       * @return This builder for chaining.
       */
      public Builder addIds(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureIdsIsMutable();
        ids_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param values The ids to add.
       * @return This builder for chaining.
       */
      public Builder addAllIds(
          java.lang.Iterable values) {
        ensureIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ids_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @return This builder for chaining.
       */
      public Builder clearIds() {
        ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param value The bytes of the ids to add.
       * @return This builder for chaining.
       */
      public Builder addIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureIdsIsMutable();
        ids_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._DeleteItemBatchRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._DeleteItemBatchRequest)
    private static final vectorindex.Vectorindex._DeleteItemBatchRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._DeleteItemBatchRequest();
    }

    public static vectorindex.Vectorindex._DeleteItemBatchRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_DeleteItemBatchRequest>
        PARSER = new com.google.protobuf.AbstractParser<_DeleteItemBatchRequest>() {
      @java.lang.Override
      public _DeleteItemBatchRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_DeleteItemBatchRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_DeleteItemBatchRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._DeleteItemBatchRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _DeleteItemBatchResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._DeleteItemBatchResponse)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code vectorindex._DeleteItemBatchResponse}
   */
  public static final class _DeleteItemBatchResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._DeleteItemBatchResponse)
      _DeleteItemBatchResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _DeleteItemBatchResponse.newBuilder() to construct.
    private _DeleteItemBatchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _DeleteItemBatchResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _DeleteItemBatchResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._DeleteItemBatchResponse.class, vectorindex.Vectorindex._DeleteItemBatchResponse.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._DeleteItemBatchResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._DeleteItemBatchResponse other = (vectorindex.Vectorindex._DeleteItemBatchResponse) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._DeleteItemBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._DeleteItemBatchResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._DeleteItemBatchResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._DeleteItemBatchResponse)
        vectorindex.Vectorindex._DeleteItemBatchResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._DeleteItemBatchResponse.class, vectorindex.Vectorindex._DeleteItemBatchResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._DeleteItemBatchResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__DeleteItemBatchResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._DeleteItemBatchResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._DeleteItemBatchResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._DeleteItemBatchResponse build() {
        vectorindex.Vectorindex._DeleteItemBatchResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._DeleteItemBatchResponse buildPartial() {
        vectorindex.Vectorindex._DeleteItemBatchResponse result = new vectorindex.Vectorindex._DeleteItemBatchResponse(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._DeleteItemBatchResponse) {
          return mergeFrom((vectorindex.Vectorindex._DeleteItemBatchResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._DeleteItemBatchResponse other) {
        if (other == vectorindex.Vectorindex._DeleteItemBatchResponse.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._DeleteItemBatchResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._DeleteItemBatchResponse)
    private static final vectorindex.Vectorindex._DeleteItemBatchResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._DeleteItemBatchResponse();
    }

    public static vectorindex.Vectorindex._DeleteItemBatchResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_DeleteItemBatchResponse>
        PARSER = new com.google.protobuf.AbstractParser<_DeleteItemBatchResponse>() {
      @java.lang.Override
      public _DeleteItemBatchResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_DeleteItemBatchResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_DeleteItemBatchResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._DeleteItemBatchResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _VectorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._Vector)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated float elements = 1;
     * @return A list containing the elements.
     */
    java.util.List getElementsList();
    /**
     * repeated float elements = 1;
     * @return The count of elements.
     */
    int getElementsCount();
    /**
     * repeated float elements = 1;
     * @param index The index of the element to return.
     * @return The elements at the given index.
     */
    float getElements(int index);
  }
  /**
   * Protobuf type {@code vectorindex._Vector}
   */
  public static final class _Vector extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._Vector)
      _VectorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _Vector.newBuilder() to construct.
    private _Vector(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _Vector() {
      elements_ = emptyFloatList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _Vector();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__Vector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__Vector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._Vector.class, vectorindex.Vectorindex._Vector.Builder.class);
    }

    public static final int ELEMENTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.FloatList elements_;
    /**
     * repeated float elements = 1;
     * @return A list containing the elements.
     */
    @java.lang.Override
    public java.util.List
        getElementsList() {
      return elements_;
    }
    /**
     * repeated float elements = 1;
     * @return The count of elements.
     */
    public int getElementsCount() {
      return elements_.size();
    }
    /**
     * repeated float elements = 1;
     * @param index The index of the element to return.
     * @return The elements at the given index.
     */
    public float getElements(int index) {
      return elements_.getFloat(index);
    }
    private int elementsMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getElementsList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(elementsMemoizedSerializedSize);
      }
      for (int i = 0; i < elements_.size(); i++) {
        output.writeFloatNoTag(elements_.getFloat(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        dataSize = 4 * getElementsList().size();
        size += dataSize;
        if (!getElementsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        elementsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._Vector)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._Vector other = (vectorindex.Vectorindex._Vector) obj;

      if (!getElementsList()
          .equals(other.getElementsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getElementsCount() > 0) {
        hash = (37 * hash) + ELEMENTS_FIELD_NUMBER;
        hash = (53 * hash) + getElementsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._Vector parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Vector parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Vector parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Vector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._Vector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._Vector}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._Vector)
        vectorindex.Vectorindex._VectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Vector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Vector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._Vector.class, vectorindex.Vectorindex._Vector.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._Vector.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        elements_ = emptyFloatList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Vector_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Vector getDefaultInstanceForType() {
        return vectorindex.Vectorindex._Vector.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Vector build() {
        vectorindex.Vectorindex._Vector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Vector buildPartial() {
        vectorindex.Vectorindex._Vector result = new vectorindex.Vectorindex._Vector(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._Vector result) {
        if (((bitField0_ & 0x00000001) != 0)) {
          elements_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.elements_ = elements_;
      }

      private void buildPartial0(vectorindex.Vectorindex._Vector result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._Vector) {
          return mergeFrom((vectorindex.Vectorindex._Vector)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._Vector other) {
        if (other == vectorindex.Vectorindex._Vector.getDefaultInstance()) return this;
        if (!other.elements_.isEmpty()) {
          if (elements_.isEmpty()) {
            elements_ = other.elements_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureElementsIsMutable();
            elements_.addAll(other.elements_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 13: {
                float v = input.readFloat();
                ensureElementsIsMutable();
                elements_.addFloat(v);
                break;
              } // case 13
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureElementsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  elements_.addFloat(input.readFloat());
                }
                input.popLimit(limit);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.FloatList elements_ = emptyFloatList();
      private void ensureElementsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          elements_ = mutableCopy(elements_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       * repeated float elements = 1;
       * @return A list containing the elements.
       */
      public java.util.List
          getElementsList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(elements_) : elements_;
      }
      /**
       * repeated float elements = 1;
       * @return The count of elements.
       */
      public int getElementsCount() {
        return elements_.size();
      }
      /**
       * repeated float elements = 1;
       * @param index The index of the element to return.
       * @return The elements at the given index.
       */
      public float getElements(int index) {
        return elements_.getFloat(index);
      }
      /**
       * repeated float elements = 1;
       * @param index The index to set the value at.
       * @param value The elements to set.
       * @return This builder for chaining.
       */
      public Builder setElements(
          int index, float value) {

        ensureElementsIsMutable();
        elements_.setFloat(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated float elements = 1;
       * @param value The elements to add.
       * @return This builder for chaining.
       */
      public Builder addElements(float value) {

        ensureElementsIsMutable();
        elements_.addFloat(value);
        onChanged();
        return this;
      }
      /**
       * repeated float elements = 1;
       * @param values The elements to add.
       * @return This builder for chaining.
       */
      public Builder addAllElements(
          java.lang.Iterable values) {
        ensureElementsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, elements_);
        onChanged();
        return this;
      }
      /**
       * repeated float elements = 1;
       * @return This builder for chaining.
       */
      public Builder clearElements() {
        elements_ = emptyFloatList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._Vector)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._Vector)
    private static final vectorindex.Vectorindex._Vector DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._Vector();
    }

    public static vectorindex.Vectorindex._Vector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_Vector>
        PARSER = new com.google.protobuf.AbstractParser<_Vector>() {
      @java.lang.Override
      public _Vector parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_Vector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_Vector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._Vector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _MetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._Metadata)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * string string_value = 2;
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * string string_value = 2;
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * string string_value = 2;
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    /**
     * int64 integer_value = 3;
     * @return Whether the integerValue field is set.
     */
    boolean hasIntegerValue();
    /**
     * int64 integer_value = 3;
     * @return The integerValue.
     */
    long getIntegerValue();

    /**
     * double double_value = 4;
     * @return Whether the doubleValue field is set.
     */
    boolean hasDoubleValue();
    /**
     * double double_value = 4;
     * @return The doubleValue.
     */
    double getDoubleValue();

    /**
     * bool boolean_value = 5;
     * @return Whether the booleanValue field is set.
     */
    boolean hasBooleanValue();
    /**
     * bool boolean_value = 5;
     * @return The booleanValue.
     */
    boolean getBooleanValue();

    /**
     * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
     * @return Whether the listOfStringsValue field is set.
     */
    boolean hasListOfStringsValue();
    /**
     * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
     * @return The listOfStringsValue.
     */
    vectorindex.Vectorindex._Metadata._ListOfStrings getListOfStringsValue();
    /**
     * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
     */
    vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder getListOfStringsValueOrBuilder();

    vectorindex.Vectorindex._Metadata.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._Metadata}
   */
  public static final class _Metadata extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._Metadata)
      _MetadataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _Metadata.newBuilder() to construct.
    private _Metadata(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _Metadata() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _Metadata();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__Metadata_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__Metadata_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._Metadata.class, vectorindex.Vectorindex._Metadata.Builder.class);
    }

    public interface _ListOfStringsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._Metadata._ListOfStrings)
        com.google.protobuf.MessageOrBuilder {

      /**
       * repeated string values = 1;
       * @return A list containing the values.
       */
      java.util.List
          getValuesList();
      /**
       * repeated string values = 1;
       * @return The count of values.
       */
      int getValuesCount();
      /**
       * repeated string values = 1;
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      java.lang.String getValues(int index);
      /**
       * repeated string values = 1;
       * @param index The index of the value to return.
       * @return The bytes of the values at the given index.
       */
      com.google.protobuf.ByteString
          getValuesBytes(int index);
    }
    /**
     * Protobuf type {@code vectorindex._Metadata._ListOfStrings}
     */
    public static final class _ListOfStrings extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._Metadata._ListOfStrings)
        _ListOfStringsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use _ListOfStrings.newBuilder() to construct.
      private _ListOfStrings(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private _ListOfStrings() {
        values_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new _ListOfStrings();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Metadata__ListOfStrings_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Metadata__ListOfStrings_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._Metadata._ListOfStrings.class, vectorindex.Vectorindex._Metadata._ListOfStrings.Builder.class);
      }

      public static final int VALUES_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private com.google.protobuf.LazyStringArrayList values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      /**
       * repeated string values = 1;
       * @return A list containing the values.
       */
      public com.google.protobuf.ProtocolStringList
          getValuesList() {
        return values_;
      }
      /**
       * repeated string values = 1;
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * repeated string values = 1;
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       * repeated string values = 1;
       * @param index The index of the value to return.
       * @return The bytes of the values at the given index.
       */
      public com.google.protobuf.ByteString
          getValuesBytes(int index) {
        return values_.getByteString(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < values_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, values_.getRaw(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < values_.size(); i++) {
            dataSize += computeStringSizeNoTag(values_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getValuesList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._Metadata._ListOfStrings)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._Metadata._ListOfStrings other = (vectorindex.Vectorindex._Metadata._ListOfStrings) obj;

        if (!getValuesList()
            .equals(other.getValuesList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getValuesCount() > 0) {
          hash = (37 * hash) + VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getValuesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._Metadata._ListOfStrings parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._Metadata._ListOfStrings prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._Metadata._ListOfStrings}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._Metadata._ListOfStrings)
          vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__Metadata__ListOfStrings_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__Metadata__ListOfStrings_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._Metadata._ListOfStrings.class, vectorindex.Vectorindex._Metadata._ListOfStrings.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._Metadata._ListOfStrings.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          values_ =
              com.google.protobuf.LazyStringArrayList.emptyList();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__Metadata__ListOfStrings_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._Metadata._ListOfStrings getDefaultInstanceForType() {
          return vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._Metadata._ListOfStrings build() {
          vectorindex.Vectorindex._Metadata._ListOfStrings result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._Metadata._ListOfStrings buildPartial() {
          vectorindex.Vectorindex._Metadata._ListOfStrings result = new vectorindex.Vectorindex._Metadata._ListOfStrings(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(vectorindex.Vectorindex._Metadata._ListOfStrings result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            values_.makeImmutable();
            result.values_ = values_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._Metadata._ListOfStrings) {
            return mergeFrom((vectorindex.Vectorindex._Metadata._ListOfStrings)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._Metadata._ListOfStrings other) {
          if (other == vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance()) return this;
          if (!other.values_.isEmpty()) {
            if (values_.isEmpty()) {
              values_ = other.values_;
              bitField0_ |= 0x00000001;
            } else {
              ensureValuesIsMutable();
              values_.addAll(other.values_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  java.lang.String s = input.readStringRequireUtf8();
                  ensureValuesIsMutable();
                  values_.add(s);
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private com.google.protobuf.LazyStringArrayList values_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        private void ensureValuesIsMutable() {
          if (!values_.isModifiable()) {
            values_ = new com.google.protobuf.LazyStringArrayList(values_);
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * repeated string values = 1;
         * @return A list containing the values.
         */
        public com.google.protobuf.ProtocolStringList
            getValuesList() {
          values_.makeImmutable();
          return values_;
        }
        /**
         * repeated string values = 1;
         * @return The count of values.
         */
        public int getValuesCount() {
          return values_.size();
        }
        /**
         * repeated string values = 1;
         * @param index The index of the element to return.
         * @return The values at the given index.
         */
        public java.lang.String getValues(int index) {
          return values_.get(index);
        }
        /**
         * repeated string values = 1;
         * @param index The index of the value to return.
         * @return The bytes of the values at the given index.
         */
        public com.google.protobuf.ByteString
            getValuesBytes(int index) {
          return values_.getByteString(index);
        }
        /**
         * repeated string values = 1;
         * @param index The index to set the value at.
         * @param value The values to set.
         * @return This builder for chaining.
         */
        public Builder setValues(
            int index, java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureValuesIsMutable();
          values_.set(index, value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * repeated string values = 1;
         * @param value The values to add.
         * @return This builder for chaining.
         */
        public Builder addValues(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureValuesIsMutable();
          values_.add(value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * repeated string values = 1;
         * @param values The values to add.
         * @return This builder for chaining.
         */
        public Builder addAllValues(
            java.lang.Iterable values) {
          ensureValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, values_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * repeated string values = 1;
         * @return This builder for chaining.
         */
        public Builder clearValues() {
          values_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);;
          onChanged();
          return this;
        }
        /**
         * repeated string values = 1;
         * @param value The bytes of the values to add.
         * @return This builder for chaining.
         */
        public Builder addValuesBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          ensureValuesIsMutable();
          values_.add(value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._Metadata._ListOfStrings)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._Metadata._ListOfStrings)
      private static final vectorindex.Vectorindex._Metadata._ListOfStrings DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._Metadata._ListOfStrings();
      }

      public static vectorindex.Vectorindex._Metadata._ListOfStrings getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<_ListOfStrings>
          PARSER = new com.google.protobuf.AbstractParser<_ListOfStrings>() {
        @java.lang.Override
        public _ListOfStrings parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<_ListOfStrings> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<_ListOfStrings> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Metadata._ListOfStrings getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      STRING_VALUE(2),
      INTEGER_VALUE(3),
      DOUBLE_VALUE(4),
      BOOLEAN_VALUE(5),
      LIST_OF_STRINGS_VALUE(6),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return STRING_VALUE;
          case 3: return INTEGER_VALUE;
          case 4: return DOUBLE_VALUE;
          case 5: return BOOLEAN_VALUE;
          case 6: return LIST_OF_STRINGS_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 2;
    /**
     * string string_value = 2;
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return valueCase_ == 2;
    }
    /**
     * string string_value = 2;
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (valueCase_ == 2) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (valueCase_ == 2) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * string string_value = 2;
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (valueCase_ == 2) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (valueCase_ == 2) {
          value_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTEGER_VALUE_FIELD_NUMBER = 3;
    /**
     * int64 integer_value = 3;
     * @return Whether the integerValue field is set.
     */
    @java.lang.Override
    public boolean hasIntegerValue() {
      return valueCase_ == 3;
    }
    /**
     * int64 integer_value = 3;
     * @return The integerValue.
     */
    @java.lang.Override
    public long getIntegerValue() {
      if (valueCase_ == 3) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }

    public static final int DOUBLE_VALUE_FIELD_NUMBER = 4;
    /**
     * double double_value = 4;
     * @return Whether the doubleValue field is set.
     */
    @java.lang.Override
    public boolean hasDoubleValue() {
      return valueCase_ == 4;
    }
    /**
     * double double_value = 4;
     * @return The doubleValue.
     */
    @java.lang.Override
    public double getDoubleValue() {
      if (valueCase_ == 4) {
        return (java.lang.Double) value_;
      }
      return 0D;
    }

    public static final int BOOLEAN_VALUE_FIELD_NUMBER = 5;
    /**
     * bool boolean_value = 5;
     * @return Whether the booleanValue field is set.
     */
    @java.lang.Override
    public boolean hasBooleanValue() {
      return valueCase_ == 5;
    }
    /**
     * bool boolean_value = 5;
     * @return The booleanValue.
     */
    @java.lang.Override
    public boolean getBooleanValue() {
      if (valueCase_ == 5) {
        return (java.lang.Boolean) value_;
      }
      return false;
    }

    public static final int LIST_OF_STRINGS_VALUE_FIELD_NUMBER = 6;
    /**
     * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
     * @return Whether the listOfStringsValue field is set.
     */
    @java.lang.Override
    public boolean hasListOfStringsValue() {
      return valueCase_ == 6;
    }
    /**
     * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
     * @return The listOfStringsValue.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Metadata._ListOfStrings getListOfStringsValue() {
      if (valueCase_ == 6) {
         return (vectorindex.Vectorindex._Metadata._ListOfStrings) value_;
      }
      return vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
    }
    /**
     * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder getListOfStringsValueOrBuilder() {
      if (valueCase_ == 6) {
         return (vectorindex.Vectorindex._Metadata._ListOfStrings) value_;
      }
      return vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      if (valueCase_ == 3) {
        output.writeInt64(
            3, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 4) {
        output.writeDouble(
            4, (double)((java.lang.Double) value_));
      }
      if (valueCase_ == 5) {
        output.writeBool(
            5, (boolean)((java.lang.Boolean) value_));
      }
      if (valueCase_ == 6) {
        output.writeMessage(6, (vectorindex.Vectorindex._Metadata._ListOfStrings) value_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              3, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(
              4, (double)((java.lang.Double) value_));
      }
      if (valueCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              5, (boolean)((java.lang.Boolean) value_));
      }
      if (valueCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (vectorindex.Vectorindex._Metadata._ListOfStrings) value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._Metadata)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._Metadata other = (vectorindex.Vectorindex._Metadata) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 3:
          if (getIntegerValue()
              != other.getIntegerValue()) return false;
          break;
        case 4:
          if (java.lang.Double.doubleToLongBits(getDoubleValue())
              != java.lang.Double.doubleToLongBits(
                  other.getDoubleValue())) return false;
          break;
        case 5:
          if (getBooleanValue()
              != other.getBooleanValue()) return false;
          break;
        case 6:
          if (!getListOfStringsValue()
              .equals(other.getListOfStringsValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 3:
          hash = (37 * hash) + INTEGER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntegerValue());
          break;
        case 4:
          hash = (37 * hash) + DOUBLE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              java.lang.Double.doubleToLongBits(getDoubleValue()));
          break;
        case 5:
          hash = (37 * hash) + BOOLEAN_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getBooleanValue());
          break;
        case 6:
          hash = (37 * hash) + LIST_OF_STRINGS_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getListOfStringsValue().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._Metadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Metadata parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Metadata parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._Metadata parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._Metadata prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._Metadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._Metadata)
        vectorindex.Vectorindex._MetadataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Metadata_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Metadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._Metadata.class, vectorindex.Vectorindex._Metadata.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._Metadata.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        if (listOfStringsValueBuilder_ != null) {
          listOfStringsValueBuilder_.clear();
        }
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__Metadata_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Metadata getDefaultInstanceForType() {
        return vectorindex.Vectorindex._Metadata.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Metadata build() {
        vectorindex.Vectorindex._Metadata result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._Metadata buildPartial() {
        vectorindex.Vectorindex._Metadata result = new vectorindex.Vectorindex._Metadata(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._Metadata result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._Metadata result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
        if (valueCase_ == 6 &&
            listOfStringsValueBuilder_ != null) {
          result.value_ = listOfStringsValueBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._Metadata) {
          return mergeFrom((vectorindex.Vectorindex._Metadata)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._Metadata other) {
        if (other == vectorindex.Vectorindex._Metadata.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case STRING_VALUE: {
            valueCase_ = 2;
            value_ = other.value_;
            onChanged();
            break;
          }
          case INTEGER_VALUE: {
            setIntegerValue(other.getIntegerValue());
            break;
          }
          case DOUBLE_VALUE: {
            setDoubleValue(other.getDoubleValue());
            break;
          }
          case BOOLEAN_VALUE: {
            setBooleanValue(other.getBooleanValue());
            break;
          }
          case LIST_OF_STRINGS_VALUE: {
            mergeListOfStringsValue(other.getListOfStringsValue());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                valueCase_ = 2;
                value_ = s;
                break;
              } // case 18
              case 24: {
                value_ = input.readInt64();
                valueCase_ = 3;
                break;
              } // case 24
              case 33: {
                value_ = input.readDouble();
                valueCase_ = 4;
                break;
              } // case 33
              case 40: {
                value_ = input.readBool();
                valueCase_ = 5;
                break;
              } // case 40
              case 50: {
                input.readMessage(
                    getListOfStringsValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                valueCase_ = 6;
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * string string_value = 2;
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return valueCase_ == 2;
      }
      /**
       * string string_value = 2;
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (valueCase_ == 2) {
          ref = value_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (valueCase_ == 2) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string string_value = 2;
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 2) {
          ref = value_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 2) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string string_value = 2;
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * string string_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * string string_value = 2;
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }

      /**
       * int64 integer_value = 3;
       * @return Whether the integerValue field is set.
       */
      public boolean hasIntegerValue() {
        return valueCase_ == 3;
      }
      /**
       * int64 integer_value = 3;
       * @return The integerValue.
       */
      public long getIntegerValue() {
        if (valueCase_ == 3) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
      /**
       * int64 integer_value = 3;
       * @param value The integerValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntegerValue(long value) {

        valueCase_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 integer_value = 3;
       * @return This builder for chaining.
       */
      public Builder clearIntegerValue() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * double double_value = 4;
       * @return Whether the doubleValue field is set.
       */
      public boolean hasDoubleValue() {
        return valueCase_ == 4;
      }
      /**
       * double double_value = 4;
       * @return The doubleValue.
       */
      public double getDoubleValue() {
        if (valueCase_ == 4) {
          return (java.lang.Double) value_;
        }
        return 0D;
      }
      /**
       * double double_value = 4;
       * @param value The doubleValue to set.
       * @return This builder for chaining.
       */
      public Builder setDoubleValue(double value) {

        valueCase_ = 4;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * double double_value = 4;
       * @return This builder for chaining.
       */
      public Builder clearDoubleValue() {
        if (valueCase_ == 4) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * bool boolean_value = 5;
       * @return Whether the booleanValue field is set.
       */
      public boolean hasBooleanValue() {
        return valueCase_ == 5;
      }
      /**
       * bool boolean_value = 5;
       * @return The booleanValue.
       */
      public boolean getBooleanValue() {
        if (valueCase_ == 5) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }
      /**
       * bool boolean_value = 5;
       * @param value The booleanValue to set.
       * @return This builder for chaining.
       */
      public Builder setBooleanValue(boolean value) {

        valueCase_ = 5;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * bool boolean_value = 5;
       * @return This builder for chaining.
       */
      public Builder clearBooleanValue() {
        if (valueCase_ == 5) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Metadata._ListOfStrings, vectorindex.Vectorindex._Metadata._ListOfStrings.Builder, vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder> listOfStringsValueBuilder_;
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       * @return Whether the listOfStringsValue field is set.
       */
      @java.lang.Override
      public boolean hasListOfStringsValue() {
        return valueCase_ == 6;
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       * @return The listOfStringsValue.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._Metadata._ListOfStrings getListOfStringsValue() {
        if (listOfStringsValueBuilder_ == null) {
          if (valueCase_ == 6) {
            return (vectorindex.Vectorindex._Metadata._ListOfStrings) value_;
          }
          return vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
        } else {
          if (valueCase_ == 6) {
            return listOfStringsValueBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      public Builder setListOfStringsValue(vectorindex.Vectorindex._Metadata._ListOfStrings value) {
        if (listOfStringsValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
          onChanged();
        } else {
          listOfStringsValueBuilder_.setMessage(value);
        }
        valueCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      public Builder setListOfStringsValue(
          vectorindex.Vectorindex._Metadata._ListOfStrings.Builder builderForValue) {
        if (listOfStringsValueBuilder_ == null) {
          value_ = builderForValue.build();
          onChanged();
        } else {
          listOfStringsValueBuilder_.setMessage(builderForValue.build());
        }
        valueCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      public Builder mergeListOfStringsValue(vectorindex.Vectorindex._Metadata._ListOfStrings value) {
        if (listOfStringsValueBuilder_ == null) {
          if (valueCase_ == 6 &&
              value_ != vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance()) {
            value_ = vectorindex.Vectorindex._Metadata._ListOfStrings.newBuilder((vectorindex.Vectorindex._Metadata._ListOfStrings) value_)
                .mergeFrom(value).buildPartial();
          } else {
            value_ = value;
          }
          onChanged();
        } else {
          if (valueCase_ == 6) {
            listOfStringsValueBuilder_.mergeFrom(value);
          } else {
            listOfStringsValueBuilder_.setMessage(value);
          }
        }
        valueCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      public Builder clearListOfStringsValue() {
        if (listOfStringsValueBuilder_ == null) {
          if (valueCase_ == 6) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
        } else {
          if (valueCase_ == 6) {
            valueCase_ = 0;
            value_ = null;
          }
          listOfStringsValueBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      public vectorindex.Vectorindex._Metadata._ListOfStrings.Builder getListOfStringsValueBuilder() {
        return getListOfStringsValueFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder getListOfStringsValueOrBuilder() {
        if ((valueCase_ == 6) && (listOfStringsValueBuilder_ != null)) {
          return listOfStringsValueBuilder_.getMessageOrBuilder();
        } else {
          if (valueCase_ == 6) {
            return (vectorindex.Vectorindex._Metadata._ListOfStrings) value_;
          }
          return vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._Metadata._ListOfStrings list_of_strings_value = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Metadata._ListOfStrings, vectorindex.Vectorindex._Metadata._ListOfStrings.Builder, vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder> 
          getListOfStringsValueFieldBuilder() {
        if (listOfStringsValueBuilder_ == null) {
          if (!(valueCase_ == 6)) {
            value_ = vectorindex.Vectorindex._Metadata._ListOfStrings.getDefaultInstance();
          }
          listOfStringsValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._Metadata._ListOfStrings, vectorindex.Vectorindex._Metadata._ListOfStrings.Builder, vectorindex.Vectorindex._Metadata._ListOfStringsOrBuilder>(
                  (vectorindex.Vectorindex._Metadata._ListOfStrings) value_,
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        valueCase_ = 6;
        onChanged();
        return listOfStringsValueBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._Metadata)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._Metadata)
    private static final vectorindex.Vectorindex._Metadata DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._Metadata();
    }

    public static vectorindex.Vectorindex._Metadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_Metadata>
        PARSER = new com.google.protobuf.AbstractParser<_Metadata>() {
      @java.lang.Override
      public _Metadata parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_Metadata> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_Metadata> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._Metadata getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _MetadataRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._MetadataRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._MetadataRequest.Some some = 2;
     * @return Whether the some field is set.
     */
    boolean hasSome();
    /**
     * .vectorindex._MetadataRequest.Some some = 2;
     * @return The some.
     */
    vectorindex.Vectorindex._MetadataRequest.Some getSome();
    /**
     * .vectorindex._MetadataRequest.Some some = 2;
     */
    vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder getSomeOrBuilder();

    /**
     * .vectorindex._MetadataRequest.All all = 3;
     * @return Whether the all field is set.
     */
    boolean hasAll();
    /**
     * .vectorindex._MetadataRequest.All all = 3;
     * @return The all.
     */
    vectorindex.Vectorindex._MetadataRequest.All getAll();
    /**
     * .vectorindex._MetadataRequest.All all = 3;
     */
    vectorindex.Vectorindex._MetadataRequest.AllOrBuilder getAllOrBuilder();

    vectorindex.Vectorindex._MetadataRequest.KindCase getKindCase();
  }
  /**
   * Protobuf type {@code vectorindex._MetadataRequest}
   */
  public static final class _MetadataRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._MetadataRequest)
      _MetadataRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _MetadataRequest.newBuilder() to construct.
    private _MetadataRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _MetadataRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _MetadataRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._MetadataRequest.class, vectorindex.Vectorindex._MetadataRequest.Builder.class);
    }

    public interface SomeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._MetadataRequest.Some)
        com.google.protobuf.MessageOrBuilder {

      /**
       * repeated string fields = 1;
       * @return A list containing the fields.
       */
      java.util.List
          getFieldsList();
      /**
       * repeated string fields = 1;
       * @return The count of fields.
       */
      int getFieldsCount();
      /**
       * repeated string fields = 1;
       * @param index The index of the element to return.
       * @return The fields at the given index.
       */
      java.lang.String getFields(int index);
      /**
       * repeated string fields = 1;
       * @param index The index of the value to return.
       * @return The bytes of the fields at the given index.
       */
      com.google.protobuf.ByteString
          getFieldsBytes(int index);
    }
    /**
     * Protobuf type {@code vectorindex._MetadataRequest.Some}
     */
    public static final class Some extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._MetadataRequest.Some)
        SomeOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Some.newBuilder() to construct.
      private Some(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private Some() {
        fields_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Some();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_Some_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_Some_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._MetadataRequest.Some.class, vectorindex.Vectorindex._MetadataRequest.Some.Builder.class);
      }

      public static final int FIELDS_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private com.google.protobuf.LazyStringArrayList fields_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      /**
       * repeated string fields = 1;
       * @return A list containing the fields.
       */
      public com.google.protobuf.ProtocolStringList
          getFieldsList() {
        return fields_;
      }
      /**
       * repeated string fields = 1;
       * @return The count of fields.
       */
      public int getFieldsCount() {
        return fields_.size();
      }
      /**
       * repeated string fields = 1;
       * @param index The index of the element to return.
       * @return The fields at the given index.
       */
      public java.lang.String getFields(int index) {
        return fields_.get(index);
      }
      /**
       * repeated string fields = 1;
       * @param index The index of the value to return.
       * @return The bytes of the fields at the given index.
       */
      public com.google.protobuf.ByteString
          getFieldsBytes(int index) {
        return fields_.getByteString(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < fields_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, fields_.getRaw(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < fields_.size(); i++) {
            dataSize += computeStringSizeNoTag(fields_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getFieldsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._MetadataRequest.Some)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._MetadataRequest.Some other = (vectorindex.Vectorindex._MetadataRequest.Some) obj;

        if (!getFieldsList()
            .equals(other.getFieldsList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getFieldsCount() > 0) {
          hash = (37 * hash) + FIELDS_FIELD_NUMBER;
          hash = (53 * hash) + getFieldsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._MetadataRequest.Some parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._MetadataRequest.Some prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._MetadataRequest.Some}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._MetadataRequest.Some)
          vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_Some_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_Some_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._MetadataRequest.Some.class, vectorindex.Vectorindex._MetadataRequest.Some.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._MetadataRequest.Some.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          fields_ =
              com.google.protobuf.LazyStringArrayList.emptyList();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_Some_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._MetadataRequest.Some getDefaultInstanceForType() {
          return vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._MetadataRequest.Some build() {
          vectorindex.Vectorindex._MetadataRequest.Some result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._MetadataRequest.Some buildPartial() {
          vectorindex.Vectorindex._MetadataRequest.Some result = new vectorindex.Vectorindex._MetadataRequest.Some(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(vectorindex.Vectorindex._MetadataRequest.Some result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            fields_.makeImmutable();
            result.fields_ = fields_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._MetadataRequest.Some) {
            return mergeFrom((vectorindex.Vectorindex._MetadataRequest.Some)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._MetadataRequest.Some other) {
          if (other == vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance()) return this;
          if (!other.fields_.isEmpty()) {
            if (fields_.isEmpty()) {
              fields_ = other.fields_;
              bitField0_ |= 0x00000001;
            } else {
              ensureFieldsIsMutable();
              fields_.addAll(other.fields_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  java.lang.String s = input.readStringRequireUtf8();
                  ensureFieldsIsMutable();
                  fields_.add(s);
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private com.google.protobuf.LazyStringArrayList fields_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        private void ensureFieldsIsMutable() {
          if (!fields_.isModifiable()) {
            fields_ = new com.google.protobuf.LazyStringArrayList(fields_);
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * repeated string fields = 1;
         * @return A list containing the fields.
         */
        public com.google.protobuf.ProtocolStringList
            getFieldsList() {
          fields_.makeImmutable();
          return fields_;
        }
        /**
         * repeated string fields = 1;
         * @return The count of fields.
         */
        public int getFieldsCount() {
          return fields_.size();
        }
        /**
         * repeated string fields = 1;
         * @param index The index of the element to return.
         * @return The fields at the given index.
         */
        public java.lang.String getFields(int index) {
          return fields_.get(index);
        }
        /**
         * repeated string fields = 1;
         * @param index The index of the value to return.
         * @return The bytes of the fields at the given index.
         */
        public com.google.protobuf.ByteString
            getFieldsBytes(int index) {
          return fields_.getByteString(index);
        }
        /**
         * repeated string fields = 1;
         * @param index The index to set the value at.
         * @param value The fields to set.
         * @return This builder for chaining.
         */
        public Builder setFields(
            int index, java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureFieldsIsMutable();
          fields_.set(index, value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * repeated string fields = 1;
         * @param value The fields to add.
         * @return This builder for chaining.
         */
        public Builder addFields(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          ensureFieldsIsMutable();
          fields_.add(value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * repeated string fields = 1;
         * @param values The fields to add.
         * @return This builder for chaining.
         */
        public Builder addAllFields(
            java.lang.Iterable values) {
          ensureFieldsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, fields_);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * repeated string fields = 1;
         * @return This builder for chaining.
         */
        public Builder clearFields() {
          fields_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);;
          onChanged();
          return this;
        }
        /**
         * repeated string fields = 1;
         * @param value The bytes of the fields to add.
         * @return This builder for chaining.
         */
        public Builder addFieldsBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          ensureFieldsIsMutable();
          fields_.add(value);
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._MetadataRequest.Some)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._MetadataRequest.Some)
      private static final vectorindex.Vectorindex._MetadataRequest.Some DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._MetadataRequest.Some();
      }

      public static vectorindex.Vectorindex._MetadataRequest.Some getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public Some parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest.Some getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface AllOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._MetadataRequest.All)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code vectorindex._MetadataRequest.All}
     */
    public static final class All extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._MetadataRequest.All)
        AllOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use All.newBuilder() to construct.
      private All(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private All() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new All();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_All_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_All_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._MetadataRequest.All.class, vectorindex.Vectorindex._MetadataRequest.All.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._MetadataRequest.All)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._MetadataRequest.All other = (vectorindex.Vectorindex._MetadataRequest.All) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._MetadataRequest.All parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._MetadataRequest.All prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._MetadataRequest.All}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._MetadataRequest.All)
          vectorindex.Vectorindex._MetadataRequest.AllOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_All_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_All_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._MetadataRequest.All.class, vectorindex.Vectorindex._MetadataRequest.All.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._MetadataRequest.All.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_All_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._MetadataRequest.All getDefaultInstanceForType() {
          return vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._MetadataRequest.All build() {
          vectorindex.Vectorindex._MetadataRequest.All result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._MetadataRequest.All buildPartial() {
          vectorindex.Vectorindex._MetadataRequest.All result = new vectorindex.Vectorindex._MetadataRequest.All(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._MetadataRequest.All) {
            return mergeFrom((vectorindex.Vectorindex._MetadataRequest.All)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._MetadataRequest.All other) {
          if (other == vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._MetadataRequest.All)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._MetadataRequest.All)
      private static final vectorindex.Vectorindex._MetadataRequest.All DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._MetadataRequest.All();
      }

      public static vectorindex.Vectorindex._MetadataRequest.All getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public All parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest.All getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int kindCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object kind_;
    public enum KindCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      SOME(2),
      ALL(3),
      KIND_NOT_SET(0);
      private final int value;
      private KindCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static KindCase valueOf(int value) {
        return forNumber(value);
      }

      public static KindCase forNumber(int value) {
        switch (value) {
          case 2: return SOME;
          case 3: return ALL;
          case 0: return KIND_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public KindCase
    getKindCase() {
      return KindCase.forNumber(
          kindCase_);
    }

    public static final int SOME_FIELD_NUMBER = 2;
    /**
     * .vectorindex._MetadataRequest.Some some = 2;
     * @return Whether the some field is set.
     */
    @java.lang.Override
    public boolean hasSome() {
      return kindCase_ == 2;
    }
    /**
     * .vectorindex._MetadataRequest.Some some = 2;
     * @return The some.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest.Some getSome() {
      if (kindCase_ == 2) {
         return (vectorindex.Vectorindex._MetadataRequest.Some) kind_;
      }
      return vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
    }
    /**
     * .vectorindex._MetadataRequest.Some some = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder getSomeOrBuilder() {
      if (kindCase_ == 2) {
         return (vectorindex.Vectorindex._MetadataRequest.Some) kind_;
      }
      return vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
    }

    public static final int ALL_FIELD_NUMBER = 3;
    /**
     * .vectorindex._MetadataRequest.All all = 3;
     * @return Whether the all field is set.
     */
    @java.lang.Override
    public boolean hasAll() {
      return kindCase_ == 3;
    }
    /**
     * .vectorindex._MetadataRequest.All all = 3;
     * @return The all.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest.All getAll() {
      if (kindCase_ == 3) {
         return (vectorindex.Vectorindex._MetadataRequest.All) kind_;
      }
      return vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
    }
    /**
     * .vectorindex._MetadataRequest.All all = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest.AllOrBuilder getAllOrBuilder() {
      if (kindCase_ == 3) {
         return (vectorindex.Vectorindex._MetadataRequest.All) kind_;
      }
      return vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (kindCase_ == 2) {
        output.writeMessage(2, (vectorindex.Vectorindex._MetadataRequest.Some) kind_);
      }
      if (kindCase_ == 3) {
        output.writeMessage(3, (vectorindex.Vectorindex._MetadataRequest.All) kind_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (kindCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (vectorindex.Vectorindex._MetadataRequest.Some) kind_);
      }
      if (kindCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (vectorindex.Vectorindex._MetadataRequest.All) kind_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._MetadataRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._MetadataRequest other = (vectorindex.Vectorindex._MetadataRequest) obj;

      if (!getKindCase().equals(other.getKindCase())) return false;
      switch (kindCase_) {
        case 2:
          if (!getSome()
              .equals(other.getSome())) return false;
          break;
        case 3:
          if (!getAll()
              .equals(other.getAll())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (kindCase_) {
        case 2:
          hash = (37 * hash) + SOME_FIELD_NUMBER;
          hash = (53 * hash) + getSome().hashCode();
          break;
        case 3:
          hash = (37 * hash) + ALL_FIELD_NUMBER;
          hash = (53 * hash) + getAll().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._MetadataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._MetadataRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._MetadataRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._MetadataRequest)
        vectorindex.Vectorindex._MetadataRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._MetadataRequest.class, vectorindex.Vectorindex._MetadataRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._MetadataRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (someBuilder_ != null) {
          someBuilder_.clear();
        }
        if (allBuilder_ != null) {
          allBuilder_.clear();
        }
        kindCase_ = 0;
        kind_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__MetadataRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._MetadataRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest build() {
        vectorindex.Vectorindex._MetadataRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest buildPartial() {
        vectorindex.Vectorindex._MetadataRequest result = new vectorindex.Vectorindex._MetadataRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._MetadataRequest result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._MetadataRequest result) {
        result.kindCase_ = kindCase_;
        result.kind_ = this.kind_;
        if (kindCase_ == 2 &&
            someBuilder_ != null) {
          result.kind_ = someBuilder_.build();
        }
        if (kindCase_ == 3 &&
            allBuilder_ != null) {
          result.kind_ = allBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._MetadataRequest) {
          return mergeFrom((vectorindex.Vectorindex._MetadataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._MetadataRequest other) {
        if (other == vectorindex.Vectorindex._MetadataRequest.getDefaultInstance()) return this;
        switch (other.getKindCase()) {
          case SOME: {
            mergeSome(other.getSome());
            break;
          }
          case ALL: {
            mergeAll(other.getAll());
            break;
          }
          case KIND_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 18: {
                input.readMessage(
                    getSomeFieldBuilder().getBuilder(),
                    extensionRegistry);
                kindCase_ = 2;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getAllFieldBuilder().getBuilder(),
                    extensionRegistry);
                kindCase_ = 3;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int kindCase_ = 0;
      private java.lang.Object kind_;
      public KindCase
          getKindCase() {
        return KindCase.forNumber(
            kindCase_);
      }

      public Builder clearKind() {
        kindCase_ = 0;
        kind_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest.Some, vectorindex.Vectorindex._MetadataRequest.Some.Builder, vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder> someBuilder_;
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       * @return Whether the some field is set.
       */
      @java.lang.Override
      public boolean hasSome() {
        return kindCase_ == 2;
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       * @return The some.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest.Some getSome() {
        if (someBuilder_ == null) {
          if (kindCase_ == 2) {
            return (vectorindex.Vectorindex._MetadataRequest.Some) kind_;
          }
          return vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
        } else {
          if (kindCase_ == 2) {
            return someBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      public Builder setSome(vectorindex.Vectorindex._MetadataRequest.Some value) {
        if (someBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          someBuilder_.setMessage(value);
        }
        kindCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      public Builder setSome(
          vectorindex.Vectorindex._MetadataRequest.Some.Builder builderForValue) {
        if (someBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          someBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      public Builder mergeSome(vectorindex.Vectorindex._MetadataRequest.Some value) {
        if (someBuilder_ == null) {
          if (kindCase_ == 2 &&
              kind_ != vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance()) {
            kind_ = vectorindex.Vectorindex._MetadataRequest.Some.newBuilder((vectorindex.Vectorindex._MetadataRequest.Some) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 2) {
            someBuilder_.mergeFrom(value);
          } else {
            someBuilder_.setMessage(value);
          }
        }
        kindCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      public Builder clearSome() {
        if (someBuilder_ == null) {
          if (kindCase_ == 2) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 2) {
            kindCase_ = 0;
            kind_ = null;
          }
          someBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      public vectorindex.Vectorindex._MetadataRequest.Some.Builder getSomeBuilder() {
        return getSomeFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder getSomeOrBuilder() {
        if ((kindCase_ == 2) && (someBuilder_ != null)) {
          return someBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 2) {
            return (vectorindex.Vectorindex._MetadataRequest.Some) kind_;
          }
          return vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._MetadataRequest.Some some = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest.Some, vectorindex.Vectorindex._MetadataRequest.Some.Builder, vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder> 
          getSomeFieldBuilder() {
        if (someBuilder_ == null) {
          if (!(kindCase_ == 2)) {
            kind_ = vectorindex.Vectorindex._MetadataRequest.Some.getDefaultInstance();
          }
          someBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._MetadataRequest.Some, vectorindex.Vectorindex._MetadataRequest.Some.Builder, vectorindex.Vectorindex._MetadataRequest.SomeOrBuilder>(
                  (vectorindex.Vectorindex._MetadataRequest.Some) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 2;
        onChanged();
        return someBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest.All, vectorindex.Vectorindex._MetadataRequest.All.Builder, vectorindex.Vectorindex._MetadataRequest.AllOrBuilder> allBuilder_;
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       * @return Whether the all field is set.
       */
      @java.lang.Override
      public boolean hasAll() {
        return kindCase_ == 3;
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       * @return The all.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest.All getAll() {
        if (allBuilder_ == null) {
          if (kindCase_ == 3) {
            return (vectorindex.Vectorindex._MetadataRequest.All) kind_;
          }
          return vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
        } else {
          if (kindCase_ == 3) {
            return allBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      public Builder setAll(vectorindex.Vectorindex._MetadataRequest.All value) {
        if (allBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          allBuilder_.setMessage(value);
        }
        kindCase_ = 3;
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      public Builder setAll(
          vectorindex.Vectorindex._MetadataRequest.All.Builder builderForValue) {
        if (allBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          allBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 3;
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      public Builder mergeAll(vectorindex.Vectorindex._MetadataRequest.All value) {
        if (allBuilder_ == null) {
          if (kindCase_ == 3 &&
              kind_ != vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance()) {
            kind_ = vectorindex.Vectorindex._MetadataRequest.All.newBuilder((vectorindex.Vectorindex._MetadataRequest.All) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 3) {
            allBuilder_.mergeFrom(value);
          } else {
            allBuilder_.setMessage(value);
          }
        }
        kindCase_ = 3;
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      public Builder clearAll() {
        if (allBuilder_ == null) {
          if (kindCase_ == 3) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 3) {
            kindCase_ = 0;
            kind_ = null;
          }
          allBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      public vectorindex.Vectorindex._MetadataRequest.All.Builder getAllBuilder() {
        return getAllFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._MetadataRequest.AllOrBuilder getAllOrBuilder() {
        if ((kindCase_ == 3) && (allBuilder_ != null)) {
          return allBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 3) {
            return (vectorindex.Vectorindex._MetadataRequest.All) kind_;
          }
          return vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._MetadataRequest.All all = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest.All, vectorindex.Vectorindex._MetadataRequest.All.Builder, vectorindex.Vectorindex._MetadataRequest.AllOrBuilder> 
          getAllFieldBuilder() {
        if (allBuilder_ == null) {
          if (!(kindCase_ == 3)) {
            kind_ = vectorindex.Vectorindex._MetadataRequest.All.getDefaultInstance();
          }
          allBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._MetadataRequest.All, vectorindex.Vectorindex._MetadataRequest.All.Builder, vectorindex.Vectorindex._MetadataRequest.AllOrBuilder>(
                  (vectorindex.Vectorindex._MetadataRequest.All) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 3;
        onChanged();
        return allBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._MetadataRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._MetadataRequest)
    private static final vectorindex.Vectorindex._MetadataRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._MetadataRequest();
    }

    public static vectorindex.Vectorindex._MetadataRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_MetadataRequest>
        PARSER = new com.google.protobuf.AbstractParser<_MetadataRequest>() {
      @java.lang.Override
      public _MetadataRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_MetadataRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_MetadataRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _AndExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._AndExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return Whether the firstExpression field is set.
     */
    boolean hasFirstExpression();
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return The firstExpression.
     */
    vectorindex.Vectorindex._FilterExpression getFirstExpression();
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getFirstExpressionOrBuilder();

    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return Whether the secondExpression field is set.
     */
    boolean hasSecondExpression();
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return The secondExpression.
     */
    vectorindex.Vectorindex._FilterExpression getSecondExpression();
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getSecondExpressionOrBuilder();
  }
  /**
   * Protobuf type {@code vectorindex._AndExpression}
   */
  public static final class _AndExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._AndExpression)
      _AndExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _AndExpression.newBuilder() to construct.
    private _AndExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _AndExpression() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _AndExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__AndExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__AndExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._AndExpression.class, vectorindex.Vectorindex._AndExpression.Builder.class);
    }

    public static final int FIRST_EXPRESSION_FIELD_NUMBER = 1;
    private vectorindex.Vectorindex._FilterExpression firstExpression_;
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return Whether the firstExpression field is set.
     */
    @java.lang.Override
    public boolean hasFirstExpression() {
      return firstExpression_ != null;
    }
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return The firstExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getFirstExpression() {
      return firstExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
    }
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getFirstExpressionOrBuilder() {
      return firstExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
    }

    public static final int SECOND_EXPRESSION_FIELD_NUMBER = 2;
    private vectorindex.Vectorindex._FilterExpression secondExpression_;
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return Whether the secondExpression field is set.
     */
    @java.lang.Override
    public boolean hasSecondExpression() {
      return secondExpression_ != null;
    }
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return The secondExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getSecondExpression() {
      return secondExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
    }
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getSecondExpressionOrBuilder() {
      return secondExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (firstExpression_ != null) {
        output.writeMessage(1, getFirstExpression());
      }
      if (secondExpression_ != null) {
        output.writeMessage(2, getSecondExpression());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (firstExpression_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFirstExpression());
      }
      if (secondExpression_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getSecondExpression());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._AndExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._AndExpression other = (vectorindex.Vectorindex._AndExpression) obj;

      if (hasFirstExpression() != other.hasFirstExpression()) return false;
      if (hasFirstExpression()) {
        if (!getFirstExpression()
            .equals(other.getFirstExpression())) return false;
      }
      if (hasSecondExpression() != other.hasSecondExpression()) return false;
      if (hasSecondExpression()) {
        if (!getSecondExpression()
            .equals(other.getSecondExpression())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFirstExpression()) {
        hash = (37 * hash) + FIRST_EXPRESSION_FIELD_NUMBER;
        hash = (53 * hash) + getFirstExpression().hashCode();
      }
      if (hasSecondExpression()) {
        hash = (37 * hash) + SECOND_EXPRESSION_FIELD_NUMBER;
        hash = (53 * hash) + getSecondExpression().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._AndExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._AndExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._AndExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._AndExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._AndExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._AndExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._AndExpression)
        vectorindex.Vectorindex._AndExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__AndExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__AndExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._AndExpression.class, vectorindex.Vectorindex._AndExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._AndExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        firstExpression_ = null;
        if (firstExpressionBuilder_ != null) {
          firstExpressionBuilder_.dispose();
          firstExpressionBuilder_ = null;
        }
        secondExpression_ = null;
        if (secondExpressionBuilder_ != null) {
          secondExpressionBuilder_.dispose();
          secondExpressionBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__AndExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._AndExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._AndExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._AndExpression build() {
        vectorindex.Vectorindex._AndExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._AndExpression buildPartial() {
        vectorindex.Vectorindex._AndExpression result = new vectorindex.Vectorindex._AndExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._AndExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.firstExpression_ = firstExpressionBuilder_ == null
              ? firstExpression_
              : firstExpressionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.secondExpression_ = secondExpressionBuilder_ == null
              ? secondExpression_
              : secondExpressionBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._AndExpression) {
          return mergeFrom((vectorindex.Vectorindex._AndExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._AndExpression other) {
        if (other == vectorindex.Vectorindex._AndExpression.getDefaultInstance()) return this;
        if (other.hasFirstExpression()) {
          mergeFirstExpression(other.getFirstExpression());
        }
        if (other.hasSecondExpression()) {
          mergeSecondExpression(other.getSecondExpression());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getFirstExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getSecondExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private vectorindex.Vectorindex._FilterExpression firstExpression_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> firstExpressionBuilder_;
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       * @return Whether the firstExpression field is set.
       */
      public boolean hasFirstExpression() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       * @return The firstExpression.
       */
      public vectorindex.Vectorindex._FilterExpression getFirstExpression() {
        if (firstExpressionBuilder_ == null) {
          return firstExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
        } else {
          return firstExpressionBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder setFirstExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (firstExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          firstExpression_ = value;
        } else {
          firstExpressionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder setFirstExpression(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (firstExpressionBuilder_ == null) {
          firstExpression_ = builderForValue.build();
        } else {
          firstExpressionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder mergeFirstExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (firstExpressionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            firstExpression_ != null &&
            firstExpression_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getFirstExpressionBuilder().mergeFrom(value);
          } else {
            firstExpression_ = value;
          }
        } else {
          firstExpressionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder clearFirstExpression() {
        bitField0_ = (bitField0_ & ~0x00000001);
        firstExpression_ = null;
        if (firstExpressionBuilder_ != null) {
          firstExpressionBuilder_.dispose();
          firstExpressionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getFirstExpressionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFirstExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getFirstExpressionOrBuilder() {
        if (firstExpressionBuilder_ != null) {
          return firstExpressionBuilder_.getMessageOrBuilder();
        } else {
          return firstExpression_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
        }
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getFirstExpressionFieldBuilder() {
        if (firstExpressionBuilder_ == null) {
          firstExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getFirstExpression(),
                  getParentForChildren(),
                  isClean());
          firstExpression_ = null;
        }
        return firstExpressionBuilder_;
      }

      private vectorindex.Vectorindex._FilterExpression secondExpression_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> secondExpressionBuilder_;
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       * @return Whether the secondExpression field is set.
       */
      public boolean hasSecondExpression() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       * @return The secondExpression.
       */
      public vectorindex.Vectorindex._FilterExpression getSecondExpression() {
        if (secondExpressionBuilder_ == null) {
          return secondExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
        } else {
          return secondExpressionBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder setSecondExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (secondExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secondExpression_ = value;
        } else {
          secondExpressionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder setSecondExpression(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (secondExpressionBuilder_ == null) {
          secondExpression_ = builderForValue.build();
        } else {
          secondExpressionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder mergeSecondExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (secondExpressionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            secondExpression_ != null &&
            secondExpression_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getSecondExpressionBuilder().mergeFrom(value);
          } else {
            secondExpression_ = value;
          }
        } else {
          secondExpressionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder clearSecondExpression() {
        bitField0_ = (bitField0_ & ~0x00000002);
        secondExpression_ = null;
        if (secondExpressionBuilder_ != null) {
          secondExpressionBuilder_.dispose();
          secondExpressionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getSecondExpressionBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSecondExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getSecondExpressionOrBuilder() {
        if (secondExpressionBuilder_ != null) {
          return secondExpressionBuilder_.getMessageOrBuilder();
        } else {
          return secondExpression_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
        }
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getSecondExpressionFieldBuilder() {
        if (secondExpressionBuilder_ == null) {
          secondExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getSecondExpression(),
                  getParentForChildren(),
                  isClean());
          secondExpression_ = null;
        }
        return secondExpressionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._AndExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._AndExpression)
    private static final vectorindex.Vectorindex._AndExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._AndExpression();
    }

    public static vectorindex.Vectorindex._AndExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_AndExpression>
        PARSER = new com.google.protobuf.AbstractParser<_AndExpression>() {
      @java.lang.Override
      public _AndExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_AndExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_AndExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._AndExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _OrExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._OrExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return Whether the firstExpression field is set.
     */
    boolean hasFirstExpression();
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return The firstExpression.
     */
    vectorindex.Vectorindex._FilterExpression getFirstExpression();
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getFirstExpressionOrBuilder();

    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return Whether the secondExpression field is set.
     */
    boolean hasSecondExpression();
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return The secondExpression.
     */
    vectorindex.Vectorindex._FilterExpression getSecondExpression();
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getSecondExpressionOrBuilder();
  }
  /**
   * Protobuf type {@code vectorindex._OrExpression}
   */
  public static final class _OrExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._OrExpression)
      _OrExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _OrExpression.newBuilder() to construct.
    private _OrExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _OrExpression() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _OrExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__OrExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__OrExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._OrExpression.class, vectorindex.Vectorindex._OrExpression.Builder.class);
    }

    public static final int FIRST_EXPRESSION_FIELD_NUMBER = 1;
    private vectorindex.Vectorindex._FilterExpression firstExpression_;
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return Whether the firstExpression field is set.
     */
    @java.lang.Override
    public boolean hasFirstExpression() {
      return firstExpression_ != null;
    }
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     * @return The firstExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getFirstExpression() {
      return firstExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
    }
    /**
     * .vectorindex._FilterExpression first_expression = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getFirstExpressionOrBuilder() {
      return firstExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
    }

    public static final int SECOND_EXPRESSION_FIELD_NUMBER = 2;
    private vectorindex.Vectorindex._FilterExpression secondExpression_;
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return Whether the secondExpression field is set.
     */
    @java.lang.Override
    public boolean hasSecondExpression() {
      return secondExpression_ != null;
    }
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     * @return The secondExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getSecondExpression() {
      return secondExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
    }
    /**
     * .vectorindex._FilterExpression second_expression = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getSecondExpressionOrBuilder() {
      return secondExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (firstExpression_ != null) {
        output.writeMessage(1, getFirstExpression());
      }
      if (secondExpression_ != null) {
        output.writeMessage(2, getSecondExpression());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (firstExpression_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFirstExpression());
      }
      if (secondExpression_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getSecondExpression());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._OrExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._OrExpression other = (vectorindex.Vectorindex._OrExpression) obj;

      if (hasFirstExpression() != other.hasFirstExpression()) return false;
      if (hasFirstExpression()) {
        if (!getFirstExpression()
            .equals(other.getFirstExpression())) return false;
      }
      if (hasSecondExpression() != other.hasSecondExpression()) return false;
      if (hasSecondExpression()) {
        if (!getSecondExpression()
            .equals(other.getSecondExpression())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFirstExpression()) {
        hash = (37 * hash) + FIRST_EXPRESSION_FIELD_NUMBER;
        hash = (53 * hash) + getFirstExpression().hashCode();
      }
      if (hasSecondExpression()) {
        hash = (37 * hash) + SECOND_EXPRESSION_FIELD_NUMBER;
        hash = (53 * hash) + getSecondExpression().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._OrExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._OrExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._OrExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._OrExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._OrExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._OrExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._OrExpression)
        vectorindex.Vectorindex._OrExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__OrExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__OrExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._OrExpression.class, vectorindex.Vectorindex._OrExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._OrExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        firstExpression_ = null;
        if (firstExpressionBuilder_ != null) {
          firstExpressionBuilder_.dispose();
          firstExpressionBuilder_ = null;
        }
        secondExpression_ = null;
        if (secondExpressionBuilder_ != null) {
          secondExpressionBuilder_.dispose();
          secondExpressionBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__OrExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._OrExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._OrExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._OrExpression build() {
        vectorindex.Vectorindex._OrExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._OrExpression buildPartial() {
        vectorindex.Vectorindex._OrExpression result = new vectorindex.Vectorindex._OrExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._OrExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.firstExpression_ = firstExpressionBuilder_ == null
              ? firstExpression_
              : firstExpressionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.secondExpression_ = secondExpressionBuilder_ == null
              ? secondExpression_
              : secondExpressionBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._OrExpression) {
          return mergeFrom((vectorindex.Vectorindex._OrExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._OrExpression other) {
        if (other == vectorindex.Vectorindex._OrExpression.getDefaultInstance()) return this;
        if (other.hasFirstExpression()) {
          mergeFirstExpression(other.getFirstExpression());
        }
        if (other.hasSecondExpression()) {
          mergeSecondExpression(other.getSecondExpression());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getFirstExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getSecondExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private vectorindex.Vectorindex._FilterExpression firstExpression_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> firstExpressionBuilder_;
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       * @return Whether the firstExpression field is set.
       */
      public boolean hasFirstExpression() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       * @return The firstExpression.
       */
      public vectorindex.Vectorindex._FilterExpression getFirstExpression() {
        if (firstExpressionBuilder_ == null) {
          return firstExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
        } else {
          return firstExpressionBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder setFirstExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (firstExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          firstExpression_ = value;
        } else {
          firstExpressionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder setFirstExpression(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (firstExpressionBuilder_ == null) {
          firstExpression_ = builderForValue.build();
        } else {
          firstExpressionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder mergeFirstExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (firstExpressionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            firstExpression_ != null &&
            firstExpression_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getFirstExpressionBuilder().mergeFrom(value);
          } else {
            firstExpression_ = value;
          }
        } else {
          firstExpressionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public Builder clearFirstExpression() {
        bitField0_ = (bitField0_ & ~0x00000001);
        firstExpression_ = null;
        if (firstExpressionBuilder_ != null) {
          firstExpressionBuilder_.dispose();
          firstExpressionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getFirstExpressionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFirstExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getFirstExpressionOrBuilder() {
        if (firstExpressionBuilder_ != null) {
          return firstExpressionBuilder_.getMessageOrBuilder();
        } else {
          return firstExpression_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : firstExpression_;
        }
      }
      /**
       * .vectorindex._FilterExpression first_expression = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getFirstExpressionFieldBuilder() {
        if (firstExpressionBuilder_ == null) {
          firstExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getFirstExpression(),
                  getParentForChildren(),
                  isClean());
          firstExpression_ = null;
        }
        return firstExpressionBuilder_;
      }

      private vectorindex.Vectorindex._FilterExpression secondExpression_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> secondExpressionBuilder_;
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       * @return Whether the secondExpression field is set.
       */
      public boolean hasSecondExpression() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       * @return The secondExpression.
       */
      public vectorindex.Vectorindex._FilterExpression getSecondExpression() {
        if (secondExpressionBuilder_ == null) {
          return secondExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
        } else {
          return secondExpressionBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder setSecondExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (secondExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secondExpression_ = value;
        } else {
          secondExpressionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder setSecondExpression(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (secondExpressionBuilder_ == null) {
          secondExpression_ = builderForValue.build();
        } else {
          secondExpressionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder mergeSecondExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (secondExpressionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            secondExpression_ != null &&
            secondExpression_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getSecondExpressionBuilder().mergeFrom(value);
          } else {
            secondExpression_ = value;
          }
        } else {
          secondExpressionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public Builder clearSecondExpression() {
        bitField0_ = (bitField0_ & ~0x00000002);
        secondExpression_ = null;
        if (secondExpressionBuilder_ != null) {
          secondExpressionBuilder_.dispose();
          secondExpressionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getSecondExpressionBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSecondExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getSecondExpressionOrBuilder() {
        if (secondExpressionBuilder_ != null) {
          return secondExpressionBuilder_.getMessageOrBuilder();
        } else {
          return secondExpression_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : secondExpression_;
        }
      }
      /**
       * .vectorindex._FilterExpression second_expression = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getSecondExpressionFieldBuilder() {
        if (secondExpressionBuilder_ == null) {
          secondExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getSecondExpression(),
                  getParentForChildren(),
                  isClean());
          secondExpression_ = null;
        }
        return secondExpressionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._OrExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._OrExpression)
    private static final vectorindex.Vectorindex._OrExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._OrExpression();
    }

    public static vectorindex.Vectorindex._OrExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_OrExpression>
        PARSER = new com.google.protobuf.AbstractParser<_OrExpression>() {
      @java.lang.Override
      public _OrExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_OrExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_OrExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._OrExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _NotExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._NotExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._FilterExpression expression_to_negate = 1;
     * @return Whether the expressionToNegate field is set.
     */
    boolean hasExpressionToNegate();
    /**
     * .vectorindex._FilterExpression expression_to_negate = 1;
     * @return The expressionToNegate.
     */
    vectorindex.Vectorindex._FilterExpression getExpressionToNegate();
    /**
     * .vectorindex._FilterExpression expression_to_negate = 1;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getExpressionToNegateOrBuilder();
  }
  /**
   * Protobuf type {@code vectorindex._NotExpression}
   */
  public static final class _NotExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._NotExpression)
      _NotExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _NotExpression.newBuilder() to construct.
    private _NotExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _NotExpression() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _NotExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__NotExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__NotExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._NotExpression.class, vectorindex.Vectorindex._NotExpression.Builder.class);
    }

    public static final int EXPRESSION_TO_NEGATE_FIELD_NUMBER = 1;
    private vectorindex.Vectorindex._FilterExpression expressionToNegate_;
    /**
     * .vectorindex._FilterExpression expression_to_negate = 1;
     * @return Whether the expressionToNegate field is set.
     */
    @java.lang.Override
    public boolean hasExpressionToNegate() {
      return expressionToNegate_ != null;
    }
    /**
     * .vectorindex._FilterExpression expression_to_negate = 1;
     * @return The expressionToNegate.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getExpressionToNegate() {
      return expressionToNegate_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : expressionToNegate_;
    }
    /**
     * .vectorindex._FilterExpression expression_to_negate = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getExpressionToNegateOrBuilder() {
      return expressionToNegate_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : expressionToNegate_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (expressionToNegate_ != null) {
        output.writeMessage(1, getExpressionToNegate());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (expressionToNegate_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getExpressionToNegate());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._NotExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._NotExpression other = (vectorindex.Vectorindex._NotExpression) obj;

      if (hasExpressionToNegate() != other.hasExpressionToNegate()) return false;
      if (hasExpressionToNegate()) {
        if (!getExpressionToNegate()
            .equals(other.getExpressionToNegate())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasExpressionToNegate()) {
        hash = (37 * hash) + EXPRESSION_TO_NEGATE_FIELD_NUMBER;
        hash = (53 * hash) + getExpressionToNegate().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._NotExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NotExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._NotExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._NotExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._NotExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._NotExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._NotExpression)
        vectorindex.Vectorindex._NotExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__NotExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__NotExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._NotExpression.class, vectorindex.Vectorindex._NotExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._NotExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        expressionToNegate_ = null;
        if (expressionToNegateBuilder_ != null) {
          expressionToNegateBuilder_.dispose();
          expressionToNegateBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__NotExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._NotExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._NotExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._NotExpression build() {
        vectorindex.Vectorindex._NotExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._NotExpression buildPartial() {
        vectorindex.Vectorindex._NotExpression result = new vectorindex.Vectorindex._NotExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._NotExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.expressionToNegate_ = expressionToNegateBuilder_ == null
              ? expressionToNegate_
              : expressionToNegateBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._NotExpression) {
          return mergeFrom((vectorindex.Vectorindex._NotExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._NotExpression other) {
        if (other == vectorindex.Vectorindex._NotExpression.getDefaultInstance()) return this;
        if (other.hasExpressionToNegate()) {
          mergeExpressionToNegate(other.getExpressionToNegate());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getExpressionToNegateFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private vectorindex.Vectorindex._FilterExpression expressionToNegate_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> expressionToNegateBuilder_;
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       * @return Whether the expressionToNegate field is set.
       */
      public boolean hasExpressionToNegate() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       * @return The expressionToNegate.
       */
      public vectorindex.Vectorindex._FilterExpression getExpressionToNegate() {
        if (expressionToNegateBuilder_ == null) {
          return expressionToNegate_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : expressionToNegate_;
        } else {
          return expressionToNegateBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      public Builder setExpressionToNegate(vectorindex.Vectorindex._FilterExpression value) {
        if (expressionToNegateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expressionToNegate_ = value;
        } else {
          expressionToNegateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      public Builder setExpressionToNegate(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (expressionToNegateBuilder_ == null) {
          expressionToNegate_ = builderForValue.build();
        } else {
          expressionToNegateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      public Builder mergeExpressionToNegate(vectorindex.Vectorindex._FilterExpression value) {
        if (expressionToNegateBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            expressionToNegate_ != null &&
            expressionToNegate_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getExpressionToNegateBuilder().mergeFrom(value);
          } else {
            expressionToNegate_ = value;
          }
        } else {
          expressionToNegateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      public Builder clearExpressionToNegate() {
        bitField0_ = (bitField0_ & ~0x00000001);
        expressionToNegate_ = null;
        if (expressionToNegateBuilder_ != null) {
          expressionToNegateBuilder_.dispose();
          expressionToNegateBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getExpressionToNegateBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getExpressionToNegateFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getExpressionToNegateOrBuilder() {
        if (expressionToNegateBuilder_ != null) {
          return expressionToNegateBuilder_.getMessageOrBuilder();
        } else {
          return expressionToNegate_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : expressionToNegate_;
        }
      }
      /**
       * .vectorindex._FilterExpression expression_to_negate = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getExpressionToNegateFieldBuilder() {
        if (expressionToNegateBuilder_ == null) {
          expressionToNegateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getExpressionToNegate(),
                  getParentForChildren(),
                  isClean());
          expressionToNegate_ = null;
        }
        return expressionToNegateBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._NotExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._NotExpression)
    private static final vectorindex.Vectorindex._NotExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._NotExpression();
    }

    public static vectorindex.Vectorindex._NotExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_NotExpression>
        PARSER = new com.google.protobuf.AbstractParser<_NotExpression>() {
      @java.lang.Override
      public _NotExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_NotExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_NotExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._NotExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _EqualsExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._EqualsExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * string string_value = 2;
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * string string_value = 2;
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * string string_value = 2;
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    /**
     * int64 integer_value = 3;
     * @return Whether the integerValue field is set.
     */
    boolean hasIntegerValue();
    /**
     * int64 integer_value = 3;
     * @return The integerValue.
     */
    long getIntegerValue();

    /**
     * float float_value = 4;
     * @return Whether the floatValue field is set.
     */
    boolean hasFloatValue();
    /**
     * float float_value = 4;
     * @return The floatValue.
     */
    float getFloatValue();

    /**
     * bool boolean_value = 5;
     * @return Whether the booleanValue field is set.
     */
    boolean hasBooleanValue();
    /**
     * bool boolean_value = 5;
     * @return The booleanValue.
     */
    boolean getBooleanValue();

    vectorindex.Vectorindex._EqualsExpression.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._EqualsExpression}
   */
  public static final class _EqualsExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._EqualsExpression)
      _EqualsExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _EqualsExpression.newBuilder() to construct.
    private _EqualsExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _EqualsExpression() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _EqualsExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__EqualsExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__EqualsExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._EqualsExpression.class, vectorindex.Vectorindex._EqualsExpression.Builder.class);
    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      STRING_VALUE(2),
      INTEGER_VALUE(3),
      FLOAT_VALUE(4),
      BOOLEAN_VALUE(5),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return STRING_VALUE;
          case 3: return INTEGER_VALUE;
          case 4: return FLOAT_VALUE;
          case 5: return BOOLEAN_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 2;
    /**
     * string string_value = 2;
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return valueCase_ == 2;
    }
    /**
     * string string_value = 2;
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (valueCase_ == 2) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (valueCase_ == 2) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * string string_value = 2;
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (valueCase_ == 2) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (valueCase_ == 2) {
          value_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTEGER_VALUE_FIELD_NUMBER = 3;
    /**
     * int64 integer_value = 3;
     * @return Whether the integerValue field is set.
     */
    @java.lang.Override
    public boolean hasIntegerValue() {
      return valueCase_ == 3;
    }
    /**
     * int64 integer_value = 3;
     * @return The integerValue.
     */
    @java.lang.Override
    public long getIntegerValue() {
      if (valueCase_ == 3) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 4;
    /**
     * float float_value = 4;
     * @return Whether the floatValue field is set.
     */
    @java.lang.Override
    public boolean hasFloatValue() {
      return valueCase_ == 4;
    }
    /**
     * float float_value = 4;
     * @return The floatValue.
     */
    @java.lang.Override
    public float getFloatValue() {
      if (valueCase_ == 4) {
        return (java.lang.Float) value_;
      }
      return 0F;
    }

    public static final int BOOLEAN_VALUE_FIELD_NUMBER = 5;
    /**
     * bool boolean_value = 5;
     * @return Whether the booleanValue field is set.
     */
    @java.lang.Override
    public boolean hasBooleanValue() {
      return valueCase_ == 5;
    }
    /**
     * bool boolean_value = 5;
     * @return The booleanValue.
     */
    @java.lang.Override
    public boolean getBooleanValue() {
      if (valueCase_ == 5) {
        return (java.lang.Boolean) value_;
      }
      return false;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      if (valueCase_ == 3) {
        output.writeInt64(
            3, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 4) {
        output.writeFloat(
            4, (float)((java.lang.Float) value_));
      }
      if (valueCase_ == 5) {
        output.writeBool(
            5, (boolean)((java.lang.Boolean) value_));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              3, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              4, (float)((java.lang.Float) value_));
      }
      if (valueCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              5, (boolean)((java.lang.Boolean) value_));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._EqualsExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._EqualsExpression other = (vectorindex.Vectorindex._EqualsExpression) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 3:
          if (getIntegerValue()
              != other.getIntegerValue()) return false;
          break;
        case 4:
          if (java.lang.Float.floatToIntBits(getFloatValue())
              != java.lang.Float.floatToIntBits(
                  other.getFloatValue())) return false;
          break;
        case 5:
          if (getBooleanValue()
              != other.getBooleanValue()) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 3:
          hash = (37 * hash) + INTEGER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntegerValue());
          break;
        case 4:
          hash = (37 * hash) + FLOAT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatValue());
          break;
        case 5:
          hash = (37 * hash) + BOOLEAN_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getBooleanValue());
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._EqualsExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._EqualsExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._EqualsExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._EqualsExpression)
        vectorindex.Vectorindex._EqualsExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__EqualsExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__EqualsExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._EqualsExpression.class, vectorindex.Vectorindex._EqualsExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._EqualsExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__EqualsExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._EqualsExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._EqualsExpression build() {
        vectorindex.Vectorindex._EqualsExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._EqualsExpression buildPartial() {
        vectorindex.Vectorindex._EqualsExpression result = new vectorindex.Vectorindex._EqualsExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._EqualsExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._EqualsExpression result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._EqualsExpression) {
          return mergeFrom((vectorindex.Vectorindex._EqualsExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._EqualsExpression other) {
        if (other == vectorindex.Vectorindex._EqualsExpression.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case STRING_VALUE: {
            valueCase_ = 2;
            value_ = other.value_;
            onChanged();
            break;
          }
          case INTEGER_VALUE: {
            setIntegerValue(other.getIntegerValue());
            break;
          }
          case FLOAT_VALUE: {
            setFloatValue(other.getFloatValue());
            break;
          }
          case BOOLEAN_VALUE: {
            setBooleanValue(other.getBooleanValue());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                valueCase_ = 2;
                value_ = s;
                break;
              } // case 18
              case 24: {
                value_ = input.readInt64();
                valueCase_ = 3;
                break;
              } // case 24
              case 37: {
                value_ = input.readFloat();
                valueCase_ = 4;
                break;
              } // case 37
              case 40: {
                value_ = input.readBool();
                valueCase_ = 5;
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * string string_value = 2;
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return valueCase_ == 2;
      }
      /**
       * string string_value = 2;
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (valueCase_ == 2) {
          ref = value_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (valueCase_ == 2) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string string_value = 2;
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 2) {
          ref = value_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 2) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string string_value = 2;
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * string string_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * string string_value = 2;
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }

      /**
       * int64 integer_value = 3;
       * @return Whether the integerValue field is set.
       */
      public boolean hasIntegerValue() {
        return valueCase_ == 3;
      }
      /**
       * int64 integer_value = 3;
       * @return The integerValue.
       */
      public long getIntegerValue() {
        if (valueCase_ == 3) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
      /**
       * int64 integer_value = 3;
       * @param value The integerValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntegerValue(long value) {

        valueCase_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 integer_value = 3;
       * @return This builder for chaining.
       */
      public Builder clearIntegerValue() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * float float_value = 4;
       * @return Whether the floatValue field is set.
       */
      public boolean hasFloatValue() {
        return valueCase_ == 4;
      }
      /**
       * float float_value = 4;
       * @return The floatValue.
       */
      public float getFloatValue() {
        if (valueCase_ == 4) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
      /**
       * float float_value = 4;
       * @param value The floatValue to set.
       * @return This builder for chaining.
       */
      public Builder setFloatValue(float value) {

        valueCase_ = 4;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * float float_value = 4;
       * @return This builder for chaining.
       */
      public Builder clearFloatValue() {
        if (valueCase_ == 4) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * bool boolean_value = 5;
       * @return Whether the booleanValue field is set.
       */
      public boolean hasBooleanValue() {
        return valueCase_ == 5;
      }
      /**
       * bool boolean_value = 5;
       * @return The booleanValue.
       */
      public boolean getBooleanValue() {
        if (valueCase_ == 5) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }
      /**
       * bool boolean_value = 5;
       * @param value The booleanValue to set.
       * @return This builder for chaining.
       */
      public Builder setBooleanValue(boolean value) {

        valueCase_ = 5;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * bool boolean_value = 5;
       * @return This builder for chaining.
       */
      public Builder clearBooleanValue() {
        if (valueCase_ == 5) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._EqualsExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._EqualsExpression)
    private static final vectorindex.Vectorindex._EqualsExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._EqualsExpression();
    }

    public static vectorindex.Vectorindex._EqualsExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_EqualsExpression>
        PARSER = new com.google.protobuf.AbstractParser<_EqualsExpression>() {
      @java.lang.Override
      public _EqualsExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_EqualsExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_EqualsExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._EqualsExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _GreaterThanExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._GreaterThanExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    boolean hasIntegerValue();
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    long getIntegerValue();

    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    boolean hasFloatValue();
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    float getFloatValue();

    vectorindex.Vectorindex._GreaterThanExpression.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._GreaterThanExpression}
   */
  public static final class _GreaterThanExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._GreaterThanExpression)
      _GreaterThanExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _GreaterThanExpression.newBuilder() to construct.
    private _GreaterThanExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _GreaterThanExpression() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _GreaterThanExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._GreaterThanExpression.class, vectorindex.Vectorindex._GreaterThanExpression.Builder.class);
    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      INTEGER_VALUE(2),
      FLOAT_VALUE(3),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return INTEGER_VALUE;
          case 3: return FLOAT_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTEGER_VALUE_FIELD_NUMBER = 2;
    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    @java.lang.Override
    public boolean hasIntegerValue() {
      return valueCase_ == 2;
    }
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    @java.lang.Override
    public long getIntegerValue() {
      if (valueCase_ == 2) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    @java.lang.Override
    public boolean hasFloatValue() {
      return valueCase_ == 3;
    }
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    @java.lang.Override
    public float getFloatValue() {
      if (valueCase_ == 3) {
        return (java.lang.Float) value_;
      }
      return 0F;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        output.writeInt64(
            2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        output.writeFloat(
            3, (float)((java.lang.Float) value_));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              3, (float)((java.lang.Float) value_));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._GreaterThanExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._GreaterThanExpression other = (vectorindex.Vectorindex._GreaterThanExpression) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (getIntegerValue()
              != other.getIntegerValue()) return false;
          break;
        case 3:
          if (java.lang.Float.floatToIntBits(getFloatValue())
              != java.lang.Float.floatToIntBits(
                  other.getFloatValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + INTEGER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntegerValue());
          break;
        case 3:
          hash = (37 * hash) + FLOAT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatValue());
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GreaterThanExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._GreaterThanExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._GreaterThanExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._GreaterThanExpression)
        vectorindex.Vectorindex._GreaterThanExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._GreaterThanExpression.class, vectorindex.Vectorindex._GreaterThanExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._GreaterThanExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanExpression build() {
        vectorindex.Vectorindex._GreaterThanExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanExpression buildPartial() {
        vectorindex.Vectorindex._GreaterThanExpression result = new vectorindex.Vectorindex._GreaterThanExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._GreaterThanExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._GreaterThanExpression result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._GreaterThanExpression) {
          return mergeFrom((vectorindex.Vectorindex._GreaterThanExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._GreaterThanExpression other) {
        if (other == vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case INTEGER_VALUE: {
            setIntegerValue(other.getIntegerValue());
            break;
          }
          case FLOAT_VALUE: {
            setFloatValue(other.getFloatValue());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                value_ = input.readInt64();
                valueCase_ = 2;
                break;
              } // case 16
              case 29: {
                value_ = input.readFloat();
                valueCase_ = 3;
                break;
              } // case 29
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * int64 integer_value = 2;
       * @return Whether the integerValue field is set.
       */
      public boolean hasIntegerValue() {
        return valueCase_ == 2;
      }
      /**
       * int64 integer_value = 2;
       * @return The integerValue.
       */
      public long getIntegerValue() {
        if (valueCase_ == 2) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
      /**
       * int64 integer_value = 2;
       * @param value The integerValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntegerValue(long value) {

        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 integer_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearIntegerValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * float float_value = 3;
       * @return Whether the floatValue field is set.
       */
      public boolean hasFloatValue() {
        return valueCase_ == 3;
      }
      /**
       * float float_value = 3;
       * @return The floatValue.
       */
      public float getFloatValue() {
        if (valueCase_ == 3) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
      /**
       * float float_value = 3;
       * @param value The floatValue to set.
       * @return This builder for chaining.
       */
      public Builder setFloatValue(float value) {

        valueCase_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * float float_value = 3;
       * @return This builder for chaining.
       */
      public Builder clearFloatValue() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._GreaterThanExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._GreaterThanExpression)
    private static final vectorindex.Vectorindex._GreaterThanExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._GreaterThanExpression();
    }

    public static vectorindex.Vectorindex._GreaterThanExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_GreaterThanExpression>
        PARSER = new com.google.protobuf.AbstractParser<_GreaterThanExpression>() {
      @java.lang.Override
      public _GreaterThanExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_GreaterThanExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_GreaterThanExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._GreaterThanExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _GreaterThanOrEqualExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._GreaterThanOrEqualExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    boolean hasIntegerValue();
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    long getIntegerValue();

    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    boolean hasFloatValue();
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    float getFloatValue();

    vectorindex.Vectorindex._GreaterThanOrEqualExpression.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._GreaterThanOrEqualExpression}
   */
  public static final class _GreaterThanOrEqualExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._GreaterThanOrEqualExpression)
      _GreaterThanOrEqualExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _GreaterThanOrEqualExpression.newBuilder() to construct.
    private _GreaterThanOrEqualExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _GreaterThanOrEqualExpression() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _GreaterThanOrEqualExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanOrEqualExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanOrEqualExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._GreaterThanOrEqualExpression.class, vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder.class);
    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      INTEGER_VALUE(2),
      FLOAT_VALUE(3),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return INTEGER_VALUE;
          case 3: return FLOAT_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTEGER_VALUE_FIELD_NUMBER = 2;
    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    @java.lang.Override
    public boolean hasIntegerValue() {
      return valueCase_ == 2;
    }
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    @java.lang.Override
    public long getIntegerValue() {
      if (valueCase_ == 2) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    @java.lang.Override
    public boolean hasFloatValue() {
      return valueCase_ == 3;
    }
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    @java.lang.Override
    public float getFloatValue() {
      if (valueCase_ == 3) {
        return (java.lang.Float) value_;
      }
      return 0F;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        output.writeInt64(
            2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        output.writeFloat(
            3, (float)((java.lang.Float) value_));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              3, (float)((java.lang.Float) value_));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._GreaterThanOrEqualExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._GreaterThanOrEqualExpression other = (vectorindex.Vectorindex._GreaterThanOrEqualExpression) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (getIntegerValue()
              != other.getIntegerValue()) return false;
          break;
        case 3:
          if (java.lang.Float.floatToIntBits(getFloatValue())
              != java.lang.Float.floatToIntBits(
                  other.getFloatValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + INTEGER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntegerValue());
          break;
        case 3:
          hash = (37 * hash) + FLOAT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatValue());
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._GreaterThanOrEqualExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._GreaterThanOrEqualExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._GreaterThanOrEqualExpression)
        vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanOrEqualExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanOrEqualExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._GreaterThanOrEqualExpression.class, vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._GreaterThanOrEqualExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GreaterThanOrEqualExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanOrEqualExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanOrEqualExpression build() {
        vectorindex.Vectorindex._GreaterThanOrEqualExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanOrEqualExpression buildPartial() {
        vectorindex.Vectorindex._GreaterThanOrEqualExpression result = new vectorindex.Vectorindex._GreaterThanOrEqualExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._GreaterThanOrEqualExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._GreaterThanOrEqualExpression result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._GreaterThanOrEqualExpression) {
          return mergeFrom((vectorindex.Vectorindex._GreaterThanOrEqualExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._GreaterThanOrEqualExpression other) {
        if (other == vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case INTEGER_VALUE: {
            setIntegerValue(other.getIntegerValue());
            break;
          }
          case FLOAT_VALUE: {
            setFloatValue(other.getFloatValue());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                value_ = input.readInt64();
                valueCase_ = 2;
                break;
              } // case 16
              case 29: {
                value_ = input.readFloat();
                valueCase_ = 3;
                break;
              } // case 29
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * int64 integer_value = 2;
       * @return Whether the integerValue field is set.
       */
      public boolean hasIntegerValue() {
        return valueCase_ == 2;
      }
      /**
       * int64 integer_value = 2;
       * @return The integerValue.
       */
      public long getIntegerValue() {
        if (valueCase_ == 2) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
      /**
       * int64 integer_value = 2;
       * @param value The integerValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntegerValue(long value) {

        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 integer_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearIntegerValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * float float_value = 3;
       * @return Whether the floatValue field is set.
       */
      public boolean hasFloatValue() {
        return valueCase_ == 3;
      }
      /**
       * float float_value = 3;
       * @return The floatValue.
       */
      public float getFloatValue() {
        if (valueCase_ == 3) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
      /**
       * float float_value = 3;
       * @param value The floatValue to set.
       * @return This builder for chaining.
       */
      public Builder setFloatValue(float value) {

        valueCase_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * float float_value = 3;
       * @return This builder for chaining.
       */
      public Builder clearFloatValue() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._GreaterThanOrEqualExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._GreaterThanOrEqualExpression)
    private static final vectorindex.Vectorindex._GreaterThanOrEqualExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._GreaterThanOrEqualExpression();
    }

    public static vectorindex.Vectorindex._GreaterThanOrEqualExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_GreaterThanOrEqualExpression>
        PARSER = new com.google.protobuf.AbstractParser<_GreaterThanOrEqualExpression>() {
      @java.lang.Override
      public _GreaterThanOrEqualExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_GreaterThanOrEqualExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_GreaterThanOrEqualExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._GreaterThanOrEqualExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _LessThanExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._LessThanExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    boolean hasIntegerValue();
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    long getIntegerValue();

    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    boolean hasFloatValue();
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    float getFloatValue();

    vectorindex.Vectorindex._LessThanExpression.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._LessThanExpression}
   */
  public static final class _LessThanExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._LessThanExpression)
      _LessThanExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _LessThanExpression.newBuilder() to construct.
    private _LessThanExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _LessThanExpression() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _LessThanExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__LessThanExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__LessThanExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._LessThanExpression.class, vectorindex.Vectorindex._LessThanExpression.Builder.class);
    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      INTEGER_VALUE(2),
      FLOAT_VALUE(3),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return INTEGER_VALUE;
          case 3: return FLOAT_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTEGER_VALUE_FIELD_NUMBER = 2;
    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    @java.lang.Override
    public boolean hasIntegerValue() {
      return valueCase_ == 2;
    }
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    @java.lang.Override
    public long getIntegerValue() {
      if (valueCase_ == 2) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    @java.lang.Override
    public boolean hasFloatValue() {
      return valueCase_ == 3;
    }
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    @java.lang.Override
    public float getFloatValue() {
      if (valueCase_ == 3) {
        return (java.lang.Float) value_;
      }
      return 0F;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        output.writeInt64(
            2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        output.writeFloat(
            3, (float)((java.lang.Float) value_));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              3, (float)((java.lang.Float) value_));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._LessThanExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._LessThanExpression other = (vectorindex.Vectorindex._LessThanExpression) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (getIntegerValue()
              != other.getIntegerValue()) return false;
          break;
        case 3:
          if (java.lang.Float.floatToIntBits(getFloatValue())
              != java.lang.Float.floatToIntBits(
                  other.getFloatValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + INTEGER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntegerValue());
          break;
        case 3:
          hash = (37 * hash) + FLOAT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatValue());
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._LessThanExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._LessThanExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._LessThanExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._LessThanExpression)
        vectorindex.Vectorindex._LessThanExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__LessThanExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__LessThanExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._LessThanExpression.class, vectorindex.Vectorindex._LessThanExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._LessThanExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__LessThanExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._LessThanExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._LessThanExpression build() {
        vectorindex.Vectorindex._LessThanExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._LessThanExpression buildPartial() {
        vectorindex.Vectorindex._LessThanExpression result = new vectorindex.Vectorindex._LessThanExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._LessThanExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._LessThanExpression result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._LessThanExpression) {
          return mergeFrom((vectorindex.Vectorindex._LessThanExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._LessThanExpression other) {
        if (other == vectorindex.Vectorindex._LessThanExpression.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case INTEGER_VALUE: {
            setIntegerValue(other.getIntegerValue());
            break;
          }
          case FLOAT_VALUE: {
            setFloatValue(other.getFloatValue());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                value_ = input.readInt64();
                valueCase_ = 2;
                break;
              } // case 16
              case 29: {
                value_ = input.readFloat();
                valueCase_ = 3;
                break;
              } // case 29
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * int64 integer_value = 2;
       * @return Whether the integerValue field is set.
       */
      public boolean hasIntegerValue() {
        return valueCase_ == 2;
      }
      /**
       * int64 integer_value = 2;
       * @return The integerValue.
       */
      public long getIntegerValue() {
        if (valueCase_ == 2) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
      /**
       * int64 integer_value = 2;
       * @param value The integerValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntegerValue(long value) {

        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 integer_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearIntegerValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * float float_value = 3;
       * @return Whether the floatValue field is set.
       */
      public boolean hasFloatValue() {
        return valueCase_ == 3;
      }
      /**
       * float float_value = 3;
       * @return The floatValue.
       */
      public float getFloatValue() {
        if (valueCase_ == 3) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
      /**
       * float float_value = 3;
       * @param value The floatValue to set.
       * @return This builder for chaining.
       */
      public Builder setFloatValue(float value) {

        valueCase_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * float float_value = 3;
       * @return This builder for chaining.
       */
      public Builder clearFloatValue() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._LessThanExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._LessThanExpression)
    private static final vectorindex.Vectorindex._LessThanExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._LessThanExpression();
    }

    public static vectorindex.Vectorindex._LessThanExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_LessThanExpression>
        PARSER = new com.google.protobuf.AbstractParser<_LessThanExpression>() {
      @java.lang.Override
      public _LessThanExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_LessThanExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_LessThanExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._LessThanExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _LessThanOrEqualExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._LessThanOrEqualExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    boolean hasIntegerValue();
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    long getIntegerValue();

    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    boolean hasFloatValue();
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    float getFloatValue();

    vectorindex.Vectorindex._LessThanOrEqualExpression.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._LessThanOrEqualExpression}
   */
  public static final class _LessThanOrEqualExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._LessThanOrEqualExpression)
      _LessThanOrEqualExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _LessThanOrEqualExpression.newBuilder() to construct.
    private _LessThanOrEqualExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _LessThanOrEqualExpression() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _LessThanOrEqualExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__LessThanOrEqualExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__LessThanOrEqualExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._LessThanOrEqualExpression.class, vectorindex.Vectorindex._LessThanOrEqualExpression.Builder.class);
    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      INTEGER_VALUE(2),
      FLOAT_VALUE(3),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return INTEGER_VALUE;
          case 3: return FLOAT_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INTEGER_VALUE_FIELD_NUMBER = 2;
    /**
     * int64 integer_value = 2;
     * @return Whether the integerValue field is set.
     */
    @java.lang.Override
    public boolean hasIntegerValue() {
      return valueCase_ == 2;
    }
    /**
     * int64 integer_value = 2;
     * @return The integerValue.
     */
    @java.lang.Override
    public long getIntegerValue() {
      if (valueCase_ == 2) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    /**
     * float float_value = 3;
     * @return Whether the floatValue field is set.
     */
    @java.lang.Override
    public boolean hasFloatValue() {
      return valueCase_ == 3;
    }
    /**
     * float float_value = 3;
     * @return The floatValue.
     */
    @java.lang.Override
    public float getFloatValue() {
      if (valueCase_ == 3) {
        return (java.lang.Float) value_;
      }
      return 0F;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        output.writeInt64(
            2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        output.writeFloat(
            3, (float)((java.lang.Float) value_));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              2, (long)((java.lang.Long) value_));
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              3, (float)((java.lang.Float) value_));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._LessThanOrEqualExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._LessThanOrEqualExpression other = (vectorindex.Vectorindex._LessThanOrEqualExpression) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (getIntegerValue()
              != other.getIntegerValue()) return false;
          break;
        case 3:
          if (java.lang.Float.floatToIntBits(getFloatValue())
              != java.lang.Float.floatToIntBits(
                  other.getFloatValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + INTEGER_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getIntegerValue());
          break;
        case 3:
          hash = (37 * hash) + FLOAT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatValue());
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._LessThanOrEqualExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._LessThanOrEqualExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._LessThanOrEqualExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._LessThanOrEqualExpression)
        vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__LessThanOrEqualExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__LessThanOrEqualExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._LessThanOrEqualExpression.class, vectorindex.Vectorindex._LessThanOrEqualExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._LessThanOrEqualExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__LessThanOrEqualExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._LessThanOrEqualExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._LessThanOrEqualExpression build() {
        vectorindex.Vectorindex._LessThanOrEqualExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._LessThanOrEqualExpression buildPartial() {
        vectorindex.Vectorindex._LessThanOrEqualExpression result = new vectorindex.Vectorindex._LessThanOrEqualExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._LessThanOrEqualExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._LessThanOrEqualExpression result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._LessThanOrEqualExpression) {
          return mergeFrom((vectorindex.Vectorindex._LessThanOrEqualExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._LessThanOrEqualExpression other) {
        if (other == vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case INTEGER_VALUE: {
            setIntegerValue(other.getIntegerValue());
            break;
          }
          case FLOAT_VALUE: {
            setFloatValue(other.getFloatValue());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                value_ = input.readInt64();
                valueCase_ = 2;
                break;
              } // case 16
              case 29: {
                value_ = input.readFloat();
                valueCase_ = 3;
                break;
              } // case 29
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * int64 integer_value = 2;
       * @return Whether the integerValue field is set.
       */
      public boolean hasIntegerValue() {
        return valueCase_ == 2;
      }
      /**
       * int64 integer_value = 2;
       * @return The integerValue.
       */
      public long getIntegerValue() {
        if (valueCase_ == 2) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }
      /**
       * int64 integer_value = 2;
       * @param value The integerValue to set.
       * @return This builder for chaining.
       */
      public Builder setIntegerValue(long value) {

        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 integer_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearIntegerValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * float float_value = 3;
       * @return Whether the floatValue field is set.
       */
      public boolean hasFloatValue() {
        return valueCase_ == 3;
      }
      /**
       * float float_value = 3;
       * @return The floatValue.
       */
      public float getFloatValue() {
        if (valueCase_ == 3) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
      /**
       * float float_value = 3;
       * @param value The floatValue to set.
       * @return This builder for chaining.
       */
      public Builder setFloatValue(float value) {

        valueCase_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * float float_value = 3;
       * @return This builder for chaining.
       */
      public Builder clearFloatValue() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._LessThanOrEqualExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._LessThanOrEqualExpression)
    private static final vectorindex.Vectorindex._LessThanOrEqualExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._LessThanOrEqualExpression();
    }

    public static vectorindex.Vectorindex._LessThanOrEqualExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_LessThanOrEqualExpression>
        PARSER = new com.google.protobuf.AbstractParser<_LessThanOrEqualExpression>() {
      @java.lang.Override
      public _LessThanOrEqualExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_LessThanOrEqualExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_LessThanOrEqualExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._LessThanOrEqualExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _ListContainsExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._ListContainsExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string field = 1;
     * @return The field.
     */
    java.lang.String getField();
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    com.google.protobuf.ByteString
        getFieldBytes();

    /**
     * string string_value = 2;
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * string string_value = 2;
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * string string_value = 2;
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    vectorindex.Vectorindex._ListContainsExpression.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code vectorindex._ListContainsExpression}
   */
  public static final class _ListContainsExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._ListContainsExpression)
      _ListContainsExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _ListContainsExpression.newBuilder() to construct.
    private _ListContainsExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _ListContainsExpression() {
      field_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _ListContainsExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__ListContainsExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__ListContainsExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._ListContainsExpression.class, vectorindex.Vectorindex._ListContainsExpression.Builder.class);
    }

    private int valueCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object value_;
    public enum ValueCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      STRING_VALUE(2),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 2: return STRING_VALUE;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    public static final int FIELD_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object field_ = "";
    /**
     * string field = 1;
     * @return The field.
     */
    @java.lang.Override
    public java.lang.String getField() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        field_ = s;
        return s;
      }
    }
    /**
     * string field = 1;
     * @return The bytes for field.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFieldBytes() {
      java.lang.Object ref = field_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        field_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 2;
    /**
     * string string_value = 2;
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return valueCase_ == 2;
    }
    /**
     * string string_value = 2;
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (valueCase_ == 2) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (valueCase_ == 2) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * string string_value = 2;
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (valueCase_ == 2) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (valueCase_ == 2) {
          value_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, field_);
      }
      if (valueCase_ == 2) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(field_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, field_);
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._ListContainsExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._ListContainsExpression other = (vectorindex.Vectorindex._ListContainsExpression) obj;

      if (!getField()
          .equals(other.getField())) return false;
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + FIELD_FIELD_NUMBER;
      hash = (53 * hash) + getField().hashCode();
      switch (valueCase_) {
        case 2:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ListContainsExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._ListContainsExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._ListContainsExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._ListContainsExpression)
        vectorindex.Vectorindex._ListContainsExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ListContainsExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ListContainsExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ListContainsExpression.class, vectorindex.Vectorindex._ListContainsExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._ListContainsExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        field_ = "";
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ListContainsExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ListContainsExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ListContainsExpression build() {
        vectorindex.Vectorindex._ListContainsExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ListContainsExpression buildPartial() {
        vectorindex.Vectorindex._ListContainsExpression result = new vectorindex.Vectorindex._ListContainsExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._ListContainsExpression result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.field_ = field_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._ListContainsExpression result) {
        result.valueCase_ = valueCase_;
        result.value_ = this.value_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._ListContainsExpression) {
          return mergeFrom((vectorindex.Vectorindex._ListContainsExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._ListContainsExpression other) {
        if (other == vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance()) return this;
        if (!other.getField().isEmpty()) {
          field_ = other.field_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getValueCase()) {
          case STRING_VALUE: {
            valueCase_ = 2;
            value_ = other.value_;
            onChanged();
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                field_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                valueCase_ = 2;
                value_ = s;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object field_ = "";
      /**
       * string field = 1;
       * @return The field.
       */
      public java.lang.String getField() {
        java.lang.Object ref = field_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          field_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string field = 1;
       * @return The bytes for field.
       */
      public com.google.protobuf.ByteString
          getFieldBytes() {
        java.lang.Object ref = field_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          field_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string field = 1;
       * @param value The field to set.
       * @return This builder for chaining.
       */
      public Builder setField(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @return This builder for chaining.
       */
      public Builder clearField() {
        field_ = getDefaultInstance().getField();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string field = 1;
       * @param value The bytes for field to set.
       * @return This builder for chaining.
       */
      public Builder setFieldBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        field_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      /**
       * string string_value = 2;
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return valueCase_ == 2;
      }
      /**
       * string string_value = 2;
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (valueCase_ == 2) {
          ref = value_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (valueCase_ == 2) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string string_value = 2;
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 2) {
          ref = value_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 2) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string string_value = 2;
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * string string_value = 2;
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * string string_value = 2;
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._ListContainsExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._ListContainsExpression)
    private static final vectorindex.Vectorindex._ListContainsExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._ListContainsExpression();
    }

    public static vectorindex.Vectorindex._ListContainsExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_ListContainsExpression>
        PARSER = new com.google.protobuf.AbstractParser<_ListContainsExpression>() {
      @java.lang.Override
      public _ListContainsExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_ListContainsExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_ListContainsExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._ListContainsExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _FilterExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._FilterExpression)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._EqualsExpression equals_expression = 1;
     * @return Whether the equalsExpression field is set.
     */
    boolean hasEqualsExpression();
    /**
     * .vectorindex._EqualsExpression equals_expression = 1;
     * @return The equalsExpression.
     */
    vectorindex.Vectorindex._EqualsExpression getEqualsExpression();
    /**
     * .vectorindex._EqualsExpression equals_expression = 1;
     */
    vectorindex.Vectorindex._EqualsExpressionOrBuilder getEqualsExpressionOrBuilder();

    /**
     * .vectorindex._AndExpression and_expression = 2;
     * @return Whether the andExpression field is set.
     */
    boolean hasAndExpression();
    /**
     * .vectorindex._AndExpression and_expression = 2;
     * @return The andExpression.
     */
    vectorindex.Vectorindex._AndExpression getAndExpression();
    /**
     * .vectorindex._AndExpression and_expression = 2;
     */
    vectorindex.Vectorindex._AndExpressionOrBuilder getAndExpressionOrBuilder();

    /**
     * .vectorindex._OrExpression or_expression = 3;
     * @return Whether the orExpression field is set.
     */
    boolean hasOrExpression();
    /**
     * .vectorindex._OrExpression or_expression = 3;
     * @return The orExpression.
     */
    vectorindex.Vectorindex._OrExpression getOrExpression();
    /**
     * .vectorindex._OrExpression or_expression = 3;
     */
    vectorindex.Vectorindex._OrExpressionOrBuilder getOrExpressionOrBuilder();

    /**
     * .vectorindex._NotExpression not_expression = 4;
     * @return Whether the notExpression field is set.
     */
    boolean hasNotExpression();
    /**
     * .vectorindex._NotExpression not_expression = 4;
     * @return The notExpression.
     */
    vectorindex.Vectorindex._NotExpression getNotExpression();
    /**
     * .vectorindex._NotExpression not_expression = 4;
     */
    vectorindex.Vectorindex._NotExpressionOrBuilder getNotExpressionOrBuilder();

    /**
     * .vectorindex._GreaterThanExpression greater_than_expression = 5;
     * @return Whether the greaterThanExpression field is set.
     */
    boolean hasGreaterThanExpression();
    /**
     * .vectorindex._GreaterThanExpression greater_than_expression = 5;
     * @return The greaterThanExpression.
     */
    vectorindex.Vectorindex._GreaterThanExpression getGreaterThanExpression();
    /**
     * .vectorindex._GreaterThanExpression greater_than_expression = 5;
     */
    vectorindex.Vectorindex._GreaterThanExpressionOrBuilder getGreaterThanExpressionOrBuilder();

    /**
     * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
     * @return Whether the greaterThanOrEqualExpression field is set.
     */
    boolean hasGreaterThanOrEqualExpression();
    /**
     * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
     * @return The greaterThanOrEqualExpression.
     */
    vectorindex.Vectorindex._GreaterThanOrEqualExpression getGreaterThanOrEqualExpression();
    /**
     * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
     */
    vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder getGreaterThanOrEqualExpressionOrBuilder();

    /**
     * .vectorindex._LessThanExpression less_than_expression = 7;
     * @return Whether the lessThanExpression field is set.
     */
    boolean hasLessThanExpression();
    /**
     * .vectorindex._LessThanExpression less_than_expression = 7;
     * @return The lessThanExpression.
     */
    vectorindex.Vectorindex._LessThanExpression getLessThanExpression();
    /**
     * .vectorindex._LessThanExpression less_than_expression = 7;
     */
    vectorindex.Vectorindex._LessThanExpressionOrBuilder getLessThanExpressionOrBuilder();

    /**
     * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
     * @return Whether the lessThanOrEqualExpression field is set.
     */
    boolean hasLessThanOrEqualExpression();
    /**
     * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
     * @return The lessThanOrEqualExpression.
     */
    vectorindex.Vectorindex._LessThanOrEqualExpression getLessThanOrEqualExpression();
    /**
     * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
     */
    vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder getLessThanOrEqualExpressionOrBuilder();

    /**
     * .vectorindex._ListContainsExpression list_contains_expression = 9;
     * @return Whether the listContainsExpression field is set.
     */
    boolean hasListContainsExpression();
    /**
     * .vectorindex._ListContainsExpression list_contains_expression = 9;
     * @return The listContainsExpression.
     */
    vectorindex.Vectorindex._ListContainsExpression getListContainsExpression();
    /**
     * .vectorindex._ListContainsExpression list_contains_expression = 9;
     */
    vectorindex.Vectorindex._ListContainsExpressionOrBuilder getListContainsExpressionOrBuilder();

    vectorindex.Vectorindex._FilterExpression.ExpressionCase getExpressionCase();
  }
  /**
   * Protobuf type {@code vectorindex._FilterExpression}
   */
  public static final class _FilterExpression extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._FilterExpression)
      _FilterExpressionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _FilterExpression.newBuilder() to construct.
    private _FilterExpression(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _FilterExpression() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _FilterExpression();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__FilterExpression_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__FilterExpression_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._FilterExpression.class, vectorindex.Vectorindex._FilterExpression.Builder.class);
    }

    private int expressionCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object expression_;
    public enum ExpressionCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      EQUALS_EXPRESSION(1),
      AND_EXPRESSION(2),
      OR_EXPRESSION(3),
      NOT_EXPRESSION(4),
      GREATER_THAN_EXPRESSION(5),
      GREATER_THAN_OR_EQUAL_EXPRESSION(6),
      LESS_THAN_EXPRESSION(7),
      LESS_THAN_OR_EQUAL_EXPRESSION(8),
      LIST_CONTAINS_EXPRESSION(9),
      EXPRESSION_NOT_SET(0);
      private final int value;
      private ExpressionCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ExpressionCase valueOf(int value) {
        return forNumber(value);
      }

      public static ExpressionCase forNumber(int value) {
        switch (value) {
          case 1: return EQUALS_EXPRESSION;
          case 2: return AND_EXPRESSION;
          case 3: return OR_EXPRESSION;
          case 4: return NOT_EXPRESSION;
          case 5: return GREATER_THAN_EXPRESSION;
          case 6: return GREATER_THAN_OR_EQUAL_EXPRESSION;
          case 7: return LESS_THAN_EXPRESSION;
          case 8: return LESS_THAN_OR_EQUAL_EXPRESSION;
          case 9: return LIST_CONTAINS_EXPRESSION;
          case 0: return EXPRESSION_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ExpressionCase
    getExpressionCase() {
      return ExpressionCase.forNumber(
          expressionCase_);
    }

    public static final int EQUALS_EXPRESSION_FIELD_NUMBER = 1;
    /**
     * .vectorindex._EqualsExpression equals_expression = 1;
     * @return Whether the equalsExpression field is set.
     */
    @java.lang.Override
    public boolean hasEqualsExpression() {
      return expressionCase_ == 1;
    }
    /**
     * .vectorindex._EqualsExpression equals_expression = 1;
     * @return The equalsExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._EqualsExpression getEqualsExpression() {
      if (expressionCase_ == 1) {
         return (vectorindex.Vectorindex._EqualsExpression) expression_;
      }
      return vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._EqualsExpression equals_expression = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._EqualsExpressionOrBuilder getEqualsExpressionOrBuilder() {
      if (expressionCase_ == 1) {
         return (vectorindex.Vectorindex._EqualsExpression) expression_;
      }
      return vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
    }

    public static final int AND_EXPRESSION_FIELD_NUMBER = 2;
    /**
     * .vectorindex._AndExpression and_expression = 2;
     * @return Whether the andExpression field is set.
     */
    @java.lang.Override
    public boolean hasAndExpression() {
      return expressionCase_ == 2;
    }
    /**
     * .vectorindex._AndExpression and_expression = 2;
     * @return The andExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._AndExpression getAndExpression() {
      if (expressionCase_ == 2) {
         return (vectorindex.Vectorindex._AndExpression) expression_;
      }
      return vectorindex.Vectorindex._AndExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._AndExpression and_expression = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._AndExpressionOrBuilder getAndExpressionOrBuilder() {
      if (expressionCase_ == 2) {
         return (vectorindex.Vectorindex._AndExpression) expression_;
      }
      return vectorindex.Vectorindex._AndExpression.getDefaultInstance();
    }

    public static final int OR_EXPRESSION_FIELD_NUMBER = 3;
    /**
     * .vectorindex._OrExpression or_expression = 3;
     * @return Whether the orExpression field is set.
     */
    @java.lang.Override
    public boolean hasOrExpression() {
      return expressionCase_ == 3;
    }
    /**
     * .vectorindex._OrExpression or_expression = 3;
     * @return The orExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._OrExpression getOrExpression() {
      if (expressionCase_ == 3) {
         return (vectorindex.Vectorindex._OrExpression) expression_;
      }
      return vectorindex.Vectorindex._OrExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._OrExpression or_expression = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._OrExpressionOrBuilder getOrExpressionOrBuilder() {
      if (expressionCase_ == 3) {
         return (vectorindex.Vectorindex._OrExpression) expression_;
      }
      return vectorindex.Vectorindex._OrExpression.getDefaultInstance();
    }

    public static final int NOT_EXPRESSION_FIELD_NUMBER = 4;
    /**
     * .vectorindex._NotExpression not_expression = 4;
     * @return Whether the notExpression field is set.
     */
    @java.lang.Override
    public boolean hasNotExpression() {
      return expressionCase_ == 4;
    }
    /**
     * .vectorindex._NotExpression not_expression = 4;
     * @return The notExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._NotExpression getNotExpression() {
      if (expressionCase_ == 4) {
         return (vectorindex.Vectorindex._NotExpression) expression_;
      }
      return vectorindex.Vectorindex._NotExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._NotExpression not_expression = 4;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._NotExpressionOrBuilder getNotExpressionOrBuilder() {
      if (expressionCase_ == 4) {
         return (vectorindex.Vectorindex._NotExpression) expression_;
      }
      return vectorindex.Vectorindex._NotExpression.getDefaultInstance();
    }

    public static final int GREATER_THAN_EXPRESSION_FIELD_NUMBER = 5;
    /**
     * .vectorindex._GreaterThanExpression greater_than_expression = 5;
     * @return Whether the greaterThanExpression field is set.
     */
    @java.lang.Override
    public boolean hasGreaterThanExpression() {
      return expressionCase_ == 5;
    }
    /**
     * .vectorindex._GreaterThanExpression greater_than_expression = 5;
     * @return The greaterThanExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._GreaterThanExpression getGreaterThanExpression() {
      if (expressionCase_ == 5) {
         return (vectorindex.Vectorindex._GreaterThanExpression) expression_;
      }
      return vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._GreaterThanExpression greater_than_expression = 5;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._GreaterThanExpressionOrBuilder getGreaterThanExpressionOrBuilder() {
      if (expressionCase_ == 5) {
         return (vectorindex.Vectorindex._GreaterThanExpression) expression_;
      }
      return vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
    }

    public static final int GREATER_THAN_OR_EQUAL_EXPRESSION_FIELD_NUMBER = 6;
    /**
     * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
     * @return Whether the greaterThanOrEqualExpression field is set.
     */
    @java.lang.Override
    public boolean hasGreaterThanOrEqualExpression() {
      return expressionCase_ == 6;
    }
    /**
     * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
     * @return The greaterThanOrEqualExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._GreaterThanOrEqualExpression getGreaterThanOrEqualExpression() {
      if (expressionCase_ == 6) {
         return (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_;
      }
      return vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder getGreaterThanOrEqualExpressionOrBuilder() {
      if (expressionCase_ == 6) {
         return (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_;
      }
      return vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
    }

    public static final int LESS_THAN_EXPRESSION_FIELD_NUMBER = 7;
    /**
     * .vectorindex._LessThanExpression less_than_expression = 7;
     * @return Whether the lessThanExpression field is set.
     */
    @java.lang.Override
    public boolean hasLessThanExpression() {
      return expressionCase_ == 7;
    }
    /**
     * .vectorindex._LessThanExpression less_than_expression = 7;
     * @return The lessThanExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._LessThanExpression getLessThanExpression() {
      if (expressionCase_ == 7) {
         return (vectorindex.Vectorindex._LessThanExpression) expression_;
      }
      return vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._LessThanExpression less_than_expression = 7;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._LessThanExpressionOrBuilder getLessThanExpressionOrBuilder() {
      if (expressionCase_ == 7) {
         return (vectorindex.Vectorindex._LessThanExpression) expression_;
      }
      return vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
    }

    public static final int LESS_THAN_OR_EQUAL_EXPRESSION_FIELD_NUMBER = 8;
    /**
     * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
     * @return Whether the lessThanOrEqualExpression field is set.
     */
    @java.lang.Override
    public boolean hasLessThanOrEqualExpression() {
      return expressionCase_ == 8;
    }
    /**
     * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
     * @return The lessThanOrEqualExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._LessThanOrEqualExpression getLessThanOrEqualExpression() {
      if (expressionCase_ == 8) {
         return (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_;
      }
      return vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder getLessThanOrEqualExpressionOrBuilder() {
      if (expressionCase_ == 8) {
         return (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_;
      }
      return vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
    }

    public static final int LIST_CONTAINS_EXPRESSION_FIELD_NUMBER = 9;
    /**
     * .vectorindex._ListContainsExpression list_contains_expression = 9;
     * @return Whether the listContainsExpression field is set.
     */
    @java.lang.Override
    public boolean hasListContainsExpression() {
      return expressionCase_ == 9;
    }
    /**
     * .vectorindex._ListContainsExpression list_contains_expression = 9;
     * @return The listContainsExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ListContainsExpression getListContainsExpression() {
      if (expressionCase_ == 9) {
         return (vectorindex.Vectorindex._ListContainsExpression) expression_;
      }
      return vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
    }
    /**
     * .vectorindex._ListContainsExpression list_contains_expression = 9;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ListContainsExpressionOrBuilder getListContainsExpressionOrBuilder() {
      if (expressionCase_ == 9) {
         return (vectorindex.Vectorindex._ListContainsExpression) expression_;
      }
      return vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (expressionCase_ == 1) {
        output.writeMessage(1, (vectorindex.Vectorindex._EqualsExpression) expression_);
      }
      if (expressionCase_ == 2) {
        output.writeMessage(2, (vectorindex.Vectorindex._AndExpression) expression_);
      }
      if (expressionCase_ == 3) {
        output.writeMessage(3, (vectorindex.Vectorindex._OrExpression) expression_);
      }
      if (expressionCase_ == 4) {
        output.writeMessage(4, (vectorindex.Vectorindex._NotExpression) expression_);
      }
      if (expressionCase_ == 5) {
        output.writeMessage(5, (vectorindex.Vectorindex._GreaterThanExpression) expression_);
      }
      if (expressionCase_ == 6) {
        output.writeMessage(6, (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_);
      }
      if (expressionCase_ == 7) {
        output.writeMessage(7, (vectorindex.Vectorindex._LessThanExpression) expression_);
      }
      if (expressionCase_ == 8) {
        output.writeMessage(8, (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_);
      }
      if (expressionCase_ == 9) {
        output.writeMessage(9, (vectorindex.Vectorindex._ListContainsExpression) expression_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (expressionCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (vectorindex.Vectorindex._EqualsExpression) expression_);
      }
      if (expressionCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (vectorindex.Vectorindex._AndExpression) expression_);
      }
      if (expressionCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (vectorindex.Vectorindex._OrExpression) expression_);
      }
      if (expressionCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (vectorindex.Vectorindex._NotExpression) expression_);
      }
      if (expressionCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (vectorindex.Vectorindex._GreaterThanExpression) expression_);
      }
      if (expressionCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_);
      }
      if (expressionCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (vectorindex.Vectorindex._LessThanExpression) expression_);
      }
      if (expressionCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_);
      }
      if (expressionCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (vectorindex.Vectorindex._ListContainsExpression) expression_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._FilterExpression)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._FilterExpression other = (vectorindex.Vectorindex._FilterExpression) obj;

      if (!getExpressionCase().equals(other.getExpressionCase())) return false;
      switch (expressionCase_) {
        case 1:
          if (!getEqualsExpression()
              .equals(other.getEqualsExpression())) return false;
          break;
        case 2:
          if (!getAndExpression()
              .equals(other.getAndExpression())) return false;
          break;
        case 3:
          if (!getOrExpression()
              .equals(other.getOrExpression())) return false;
          break;
        case 4:
          if (!getNotExpression()
              .equals(other.getNotExpression())) return false;
          break;
        case 5:
          if (!getGreaterThanExpression()
              .equals(other.getGreaterThanExpression())) return false;
          break;
        case 6:
          if (!getGreaterThanOrEqualExpression()
              .equals(other.getGreaterThanOrEqualExpression())) return false;
          break;
        case 7:
          if (!getLessThanExpression()
              .equals(other.getLessThanExpression())) return false;
          break;
        case 8:
          if (!getLessThanOrEqualExpression()
              .equals(other.getLessThanOrEqualExpression())) return false;
          break;
        case 9:
          if (!getListContainsExpression()
              .equals(other.getListContainsExpression())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (expressionCase_) {
        case 1:
          hash = (37 * hash) + EQUALS_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getEqualsExpression().hashCode();
          break;
        case 2:
          hash = (37 * hash) + AND_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getAndExpression().hashCode();
          break;
        case 3:
          hash = (37 * hash) + OR_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getOrExpression().hashCode();
          break;
        case 4:
          hash = (37 * hash) + NOT_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getNotExpression().hashCode();
          break;
        case 5:
          hash = (37 * hash) + GREATER_THAN_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getGreaterThanExpression().hashCode();
          break;
        case 6:
          hash = (37 * hash) + GREATER_THAN_OR_EQUAL_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getGreaterThanOrEqualExpression().hashCode();
          break;
        case 7:
          hash = (37 * hash) + LESS_THAN_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getLessThanExpression().hashCode();
          break;
        case 8:
          hash = (37 * hash) + LESS_THAN_OR_EQUAL_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getLessThanOrEqualExpression().hashCode();
          break;
        case 9:
          hash = (37 * hash) + LIST_CONTAINS_EXPRESSION_FIELD_NUMBER;
          hash = (53 * hash) + getListContainsExpression().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._FilterExpression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._FilterExpression parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._FilterExpression parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._FilterExpression prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._FilterExpression}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._FilterExpression)
        vectorindex.Vectorindex._FilterExpressionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__FilterExpression_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__FilterExpression_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._FilterExpression.class, vectorindex.Vectorindex._FilterExpression.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._FilterExpression.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (equalsExpressionBuilder_ != null) {
          equalsExpressionBuilder_.clear();
        }
        if (andExpressionBuilder_ != null) {
          andExpressionBuilder_.clear();
        }
        if (orExpressionBuilder_ != null) {
          orExpressionBuilder_.clear();
        }
        if (notExpressionBuilder_ != null) {
          notExpressionBuilder_.clear();
        }
        if (greaterThanExpressionBuilder_ != null) {
          greaterThanExpressionBuilder_.clear();
        }
        if (greaterThanOrEqualExpressionBuilder_ != null) {
          greaterThanOrEqualExpressionBuilder_.clear();
        }
        if (lessThanExpressionBuilder_ != null) {
          lessThanExpressionBuilder_.clear();
        }
        if (lessThanOrEqualExpressionBuilder_ != null) {
          lessThanOrEqualExpressionBuilder_.clear();
        }
        if (listContainsExpressionBuilder_ != null) {
          listContainsExpressionBuilder_.clear();
        }
        expressionCase_ = 0;
        expression_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__FilterExpression_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._FilterExpression getDefaultInstanceForType() {
        return vectorindex.Vectorindex._FilterExpression.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._FilterExpression build() {
        vectorindex.Vectorindex._FilterExpression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._FilterExpression buildPartial() {
        vectorindex.Vectorindex._FilterExpression result = new vectorindex.Vectorindex._FilterExpression(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._FilterExpression result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._FilterExpression result) {
        result.expressionCase_ = expressionCase_;
        result.expression_ = this.expression_;
        if (expressionCase_ == 1 &&
            equalsExpressionBuilder_ != null) {
          result.expression_ = equalsExpressionBuilder_.build();
        }
        if (expressionCase_ == 2 &&
            andExpressionBuilder_ != null) {
          result.expression_ = andExpressionBuilder_.build();
        }
        if (expressionCase_ == 3 &&
            orExpressionBuilder_ != null) {
          result.expression_ = orExpressionBuilder_.build();
        }
        if (expressionCase_ == 4 &&
            notExpressionBuilder_ != null) {
          result.expression_ = notExpressionBuilder_.build();
        }
        if (expressionCase_ == 5 &&
            greaterThanExpressionBuilder_ != null) {
          result.expression_ = greaterThanExpressionBuilder_.build();
        }
        if (expressionCase_ == 6 &&
            greaterThanOrEqualExpressionBuilder_ != null) {
          result.expression_ = greaterThanOrEqualExpressionBuilder_.build();
        }
        if (expressionCase_ == 7 &&
            lessThanExpressionBuilder_ != null) {
          result.expression_ = lessThanExpressionBuilder_.build();
        }
        if (expressionCase_ == 8 &&
            lessThanOrEqualExpressionBuilder_ != null) {
          result.expression_ = lessThanOrEqualExpressionBuilder_.build();
        }
        if (expressionCase_ == 9 &&
            listContainsExpressionBuilder_ != null) {
          result.expression_ = listContainsExpressionBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._FilterExpression) {
          return mergeFrom((vectorindex.Vectorindex._FilterExpression)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._FilterExpression other) {
        if (other == vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) return this;
        switch (other.getExpressionCase()) {
          case EQUALS_EXPRESSION: {
            mergeEqualsExpression(other.getEqualsExpression());
            break;
          }
          case AND_EXPRESSION: {
            mergeAndExpression(other.getAndExpression());
            break;
          }
          case OR_EXPRESSION: {
            mergeOrExpression(other.getOrExpression());
            break;
          }
          case NOT_EXPRESSION: {
            mergeNotExpression(other.getNotExpression());
            break;
          }
          case GREATER_THAN_EXPRESSION: {
            mergeGreaterThanExpression(other.getGreaterThanExpression());
            break;
          }
          case GREATER_THAN_OR_EQUAL_EXPRESSION: {
            mergeGreaterThanOrEqualExpression(other.getGreaterThanOrEqualExpression());
            break;
          }
          case LESS_THAN_EXPRESSION: {
            mergeLessThanExpression(other.getLessThanExpression());
            break;
          }
          case LESS_THAN_OR_EQUAL_EXPRESSION: {
            mergeLessThanOrEqualExpression(other.getLessThanOrEqualExpression());
            break;
          }
          case LIST_CONTAINS_EXPRESSION: {
            mergeListContainsExpression(other.getListContainsExpression());
            break;
          }
          case EXPRESSION_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getEqualsExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getAndExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 2;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getOrExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 3;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getNotExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 4;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getGreaterThanExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 5;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getGreaterThanOrEqualExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 6;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getLessThanExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 7;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getLessThanOrEqualExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 8;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getListContainsExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                expressionCase_ = 9;
                break;
              } // case 74
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int expressionCase_ = 0;
      private java.lang.Object expression_;
      public ExpressionCase
          getExpressionCase() {
        return ExpressionCase.forNumber(
            expressionCase_);
      }

      public Builder clearExpression() {
        expressionCase_ = 0;
        expression_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._EqualsExpression, vectorindex.Vectorindex._EqualsExpression.Builder, vectorindex.Vectorindex._EqualsExpressionOrBuilder> equalsExpressionBuilder_;
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       * @return Whether the equalsExpression field is set.
       */
      @java.lang.Override
      public boolean hasEqualsExpression() {
        return expressionCase_ == 1;
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       * @return The equalsExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._EqualsExpression getEqualsExpression() {
        if (equalsExpressionBuilder_ == null) {
          if (expressionCase_ == 1) {
            return (vectorindex.Vectorindex._EqualsExpression) expression_;
          }
          return vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 1) {
            return equalsExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      public Builder setEqualsExpression(vectorindex.Vectorindex._EqualsExpression value) {
        if (equalsExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          equalsExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      public Builder setEqualsExpression(
          vectorindex.Vectorindex._EqualsExpression.Builder builderForValue) {
        if (equalsExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          equalsExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      public Builder mergeEqualsExpression(vectorindex.Vectorindex._EqualsExpression value) {
        if (equalsExpressionBuilder_ == null) {
          if (expressionCase_ == 1 &&
              expression_ != vectorindex.Vectorindex._EqualsExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._EqualsExpression.newBuilder((vectorindex.Vectorindex._EqualsExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 1) {
            equalsExpressionBuilder_.mergeFrom(value);
          } else {
            equalsExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      public Builder clearEqualsExpression() {
        if (equalsExpressionBuilder_ == null) {
          if (expressionCase_ == 1) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 1) {
            expressionCase_ = 0;
            expression_ = null;
          }
          equalsExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      public vectorindex.Vectorindex._EqualsExpression.Builder getEqualsExpressionBuilder() {
        return getEqualsExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._EqualsExpressionOrBuilder getEqualsExpressionOrBuilder() {
        if ((expressionCase_ == 1) && (equalsExpressionBuilder_ != null)) {
          return equalsExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 1) {
            return (vectorindex.Vectorindex._EqualsExpression) expression_;
          }
          return vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._EqualsExpression equals_expression = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._EqualsExpression, vectorindex.Vectorindex._EqualsExpression.Builder, vectorindex.Vectorindex._EqualsExpressionOrBuilder> 
          getEqualsExpressionFieldBuilder() {
        if (equalsExpressionBuilder_ == null) {
          if (!(expressionCase_ == 1)) {
            expression_ = vectorindex.Vectorindex._EqualsExpression.getDefaultInstance();
          }
          equalsExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._EqualsExpression, vectorindex.Vectorindex._EqualsExpression.Builder, vectorindex.Vectorindex._EqualsExpressionOrBuilder>(
                  (vectorindex.Vectorindex._EqualsExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 1;
        onChanged();
        return equalsExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._AndExpression, vectorindex.Vectorindex._AndExpression.Builder, vectorindex.Vectorindex._AndExpressionOrBuilder> andExpressionBuilder_;
      /**
       * .vectorindex._AndExpression and_expression = 2;
       * @return Whether the andExpression field is set.
       */
      @java.lang.Override
      public boolean hasAndExpression() {
        return expressionCase_ == 2;
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       * @return The andExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._AndExpression getAndExpression() {
        if (andExpressionBuilder_ == null) {
          if (expressionCase_ == 2) {
            return (vectorindex.Vectorindex._AndExpression) expression_;
          }
          return vectorindex.Vectorindex._AndExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 2) {
            return andExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._AndExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      public Builder setAndExpression(vectorindex.Vectorindex._AndExpression value) {
        if (andExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          andExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      public Builder setAndExpression(
          vectorindex.Vectorindex._AndExpression.Builder builderForValue) {
        if (andExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          andExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      public Builder mergeAndExpression(vectorindex.Vectorindex._AndExpression value) {
        if (andExpressionBuilder_ == null) {
          if (expressionCase_ == 2 &&
              expression_ != vectorindex.Vectorindex._AndExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._AndExpression.newBuilder((vectorindex.Vectorindex._AndExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 2) {
            andExpressionBuilder_.mergeFrom(value);
          } else {
            andExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      public Builder clearAndExpression() {
        if (andExpressionBuilder_ == null) {
          if (expressionCase_ == 2) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 2) {
            expressionCase_ = 0;
            expression_ = null;
          }
          andExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      public vectorindex.Vectorindex._AndExpression.Builder getAndExpressionBuilder() {
        return getAndExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._AndExpressionOrBuilder getAndExpressionOrBuilder() {
        if ((expressionCase_ == 2) && (andExpressionBuilder_ != null)) {
          return andExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 2) {
            return (vectorindex.Vectorindex._AndExpression) expression_;
          }
          return vectorindex.Vectorindex._AndExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._AndExpression and_expression = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._AndExpression, vectorindex.Vectorindex._AndExpression.Builder, vectorindex.Vectorindex._AndExpressionOrBuilder> 
          getAndExpressionFieldBuilder() {
        if (andExpressionBuilder_ == null) {
          if (!(expressionCase_ == 2)) {
            expression_ = vectorindex.Vectorindex._AndExpression.getDefaultInstance();
          }
          andExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._AndExpression, vectorindex.Vectorindex._AndExpression.Builder, vectorindex.Vectorindex._AndExpressionOrBuilder>(
                  (vectorindex.Vectorindex._AndExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 2;
        onChanged();
        return andExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._OrExpression, vectorindex.Vectorindex._OrExpression.Builder, vectorindex.Vectorindex._OrExpressionOrBuilder> orExpressionBuilder_;
      /**
       * .vectorindex._OrExpression or_expression = 3;
       * @return Whether the orExpression field is set.
       */
      @java.lang.Override
      public boolean hasOrExpression() {
        return expressionCase_ == 3;
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       * @return The orExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._OrExpression getOrExpression() {
        if (orExpressionBuilder_ == null) {
          if (expressionCase_ == 3) {
            return (vectorindex.Vectorindex._OrExpression) expression_;
          }
          return vectorindex.Vectorindex._OrExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 3) {
            return orExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._OrExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      public Builder setOrExpression(vectorindex.Vectorindex._OrExpression value) {
        if (orExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          orExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 3;
        return this;
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      public Builder setOrExpression(
          vectorindex.Vectorindex._OrExpression.Builder builderForValue) {
        if (orExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          orExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 3;
        return this;
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      public Builder mergeOrExpression(vectorindex.Vectorindex._OrExpression value) {
        if (orExpressionBuilder_ == null) {
          if (expressionCase_ == 3 &&
              expression_ != vectorindex.Vectorindex._OrExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._OrExpression.newBuilder((vectorindex.Vectorindex._OrExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 3) {
            orExpressionBuilder_.mergeFrom(value);
          } else {
            orExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 3;
        return this;
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      public Builder clearOrExpression() {
        if (orExpressionBuilder_ == null) {
          if (expressionCase_ == 3) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 3) {
            expressionCase_ = 0;
            expression_ = null;
          }
          orExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      public vectorindex.Vectorindex._OrExpression.Builder getOrExpressionBuilder() {
        return getOrExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._OrExpressionOrBuilder getOrExpressionOrBuilder() {
        if ((expressionCase_ == 3) && (orExpressionBuilder_ != null)) {
          return orExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 3) {
            return (vectorindex.Vectorindex._OrExpression) expression_;
          }
          return vectorindex.Vectorindex._OrExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._OrExpression or_expression = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._OrExpression, vectorindex.Vectorindex._OrExpression.Builder, vectorindex.Vectorindex._OrExpressionOrBuilder> 
          getOrExpressionFieldBuilder() {
        if (orExpressionBuilder_ == null) {
          if (!(expressionCase_ == 3)) {
            expression_ = vectorindex.Vectorindex._OrExpression.getDefaultInstance();
          }
          orExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._OrExpression, vectorindex.Vectorindex._OrExpression.Builder, vectorindex.Vectorindex._OrExpressionOrBuilder>(
                  (vectorindex.Vectorindex._OrExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 3;
        onChanged();
        return orExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._NotExpression, vectorindex.Vectorindex._NotExpression.Builder, vectorindex.Vectorindex._NotExpressionOrBuilder> notExpressionBuilder_;
      /**
       * .vectorindex._NotExpression not_expression = 4;
       * @return Whether the notExpression field is set.
       */
      @java.lang.Override
      public boolean hasNotExpression() {
        return expressionCase_ == 4;
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       * @return The notExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._NotExpression getNotExpression() {
        if (notExpressionBuilder_ == null) {
          if (expressionCase_ == 4) {
            return (vectorindex.Vectorindex._NotExpression) expression_;
          }
          return vectorindex.Vectorindex._NotExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 4) {
            return notExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._NotExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      public Builder setNotExpression(vectorindex.Vectorindex._NotExpression value) {
        if (notExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          notExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 4;
        return this;
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      public Builder setNotExpression(
          vectorindex.Vectorindex._NotExpression.Builder builderForValue) {
        if (notExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          notExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 4;
        return this;
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      public Builder mergeNotExpression(vectorindex.Vectorindex._NotExpression value) {
        if (notExpressionBuilder_ == null) {
          if (expressionCase_ == 4 &&
              expression_ != vectorindex.Vectorindex._NotExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._NotExpression.newBuilder((vectorindex.Vectorindex._NotExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 4) {
            notExpressionBuilder_.mergeFrom(value);
          } else {
            notExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 4;
        return this;
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      public Builder clearNotExpression() {
        if (notExpressionBuilder_ == null) {
          if (expressionCase_ == 4) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 4) {
            expressionCase_ = 0;
            expression_ = null;
          }
          notExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      public vectorindex.Vectorindex._NotExpression.Builder getNotExpressionBuilder() {
        return getNotExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._NotExpressionOrBuilder getNotExpressionOrBuilder() {
        if ((expressionCase_ == 4) && (notExpressionBuilder_ != null)) {
          return notExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 4) {
            return (vectorindex.Vectorindex._NotExpression) expression_;
          }
          return vectorindex.Vectorindex._NotExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._NotExpression not_expression = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._NotExpression, vectorindex.Vectorindex._NotExpression.Builder, vectorindex.Vectorindex._NotExpressionOrBuilder> 
          getNotExpressionFieldBuilder() {
        if (notExpressionBuilder_ == null) {
          if (!(expressionCase_ == 4)) {
            expression_ = vectorindex.Vectorindex._NotExpression.getDefaultInstance();
          }
          notExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._NotExpression, vectorindex.Vectorindex._NotExpression.Builder, vectorindex.Vectorindex._NotExpressionOrBuilder>(
                  (vectorindex.Vectorindex._NotExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 4;
        onChanged();
        return notExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._GreaterThanExpression, vectorindex.Vectorindex._GreaterThanExpression.Builder, vectorindex.Vectorindex._GreaterThanExpressionOrBuilder> greaterThanExpressionBuilder_;
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       * @return Whether the greaterThanExpression field is set.
       */
      @java.lang.Override
      public boolean hasGreaterThanExpression() {
        return expressionCase_ == 5;
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       * @return The greaterThanExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanExpression getGreaterThanExpression() {
        if (greaterThanExpressionBuilder_ == null) {
          if (expressionCase_ == 5) {
            return (vectorindex.Vectorindex._GreaterThanExpression) expression_;
          }
          return vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 5) {
            return greaterThanExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      public Builder setGreaterThanExpression(vectorindex.Vectorindex._GreaterThanExpression value) {
        if (greaterThanExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          greaterThanExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 5;
        return this;
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      public Builder setGreaterThanExpression(
          vectorindex.Vectorindex._GreaterThanExpression.Builder builderForValue) {
        if (greaterThanExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          greaterThanExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 5;
        return this;
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      public Builder mergeGreaterThanExpression(vectorindex.Vectorindex._GreaterThanExpression value) {
        if (greaterThanExpressionBuilder_ == null) {
          if (expressionCase_ == 5 &&
              expression_ != vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._GreaterThanExpression.newBuilder((vectorindex.Vectorindex._GreaterThanExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 5) {
            greaterThanExpressionBuilder_.mergeFrom(value);
          } else {
            greaterThanExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 5;
        return this;
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      public Builder clearGreaterThanExpression() {
        if (greaterThanExpressionBuilder_ == null) {
          if (expressionCase_ == 5) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 5) {
            expressionCase_ = 0;
            expression_ = null;
          }
          greaterThanExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      public vectorindex.Vectorindex._GreaterThanExpression.Builder getGreaterThanExpressionBuilder() {
        return getGreaterThanExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanExpressionOrBuilder getGreaterThanExpressionOrBuilder() {
        if ((expressionCase_ == 5) && (greaterThanExpressionBuilder_ != null)) {
          return greaterThanExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 5) {
            return (vectorindex.Vectorindex._GreaterThanExpression) expression_;
          }
          return vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._GreaterThanExpression greater_than_expression = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._GreaterThanExpression, vectorindex.Vectorindex._GreaterThanExpression.Builder, vectorindex.Vectorindex._GreaterThanExpressionOrBuilder> 
          getGreaterThanExpressionFieldBuilder() {
        if (greaterThanExpressionBuilder_ == null) {
          if (!(expressionCase_ == 5)) {
            expression_ = vectorindex.Vectorindex._GreaterThanExpression.getDefaultInstance();
          }
          greaterThanExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._GreaterThanExpression, vectorindex.Vectorindex._GreaterThanExpression.Builder, vectorindex.Vectorindex._GreaterThanExpressionOrBuilder>(
                  (vectorindex.Vectorindex._GreaterThanExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 5;
        onChanged();
        return greaterThanExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._GreaterThanOrEqualExpression, vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder, vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder> greaterThanOrEqualExpressionBuilder_;
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       * @return Whether the greaterThanOrEqualExpression field is set.
       */
      @java.lang.Override
      public boolean hasGreaterThanOrEqualExpression() {
        return expressionCase_ == 6;
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       * @return The greaterThanOrEqualExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanOrEqualExpression getGreaterThanOrEqualExpression() {
        if (greaterThanOrEqualExpressionBuilder_ == null) {
          if (expressionCase_ == 6) {
            return (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_;
          }
          return vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 6) {
            return greaterThanOrEqualExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      public Builder setGreaterThanOrEqualExpression(vectorindex.Vectorindex._GreaterThanOrEqualExpression value) {
        if (greaterThanOrEqualExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          greaterThanOrEqualExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      public Builder setGreaterThanOrEqualExpression(
          vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder builderForValue) {
        if (greaterThanOrEqualExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          greaterThanOrEqualExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      public Builder mergeGreaterThanOrEqualExpression(vectorindex.Vectorindex._GreaterThanOrEqualExpression value) {
        if (greaterThanOrEqualExpressionBuilder_ == null) {
          if (expressionCase_ == 6 &&
              expression_ != vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._GreaterThanOrEqualExpression.newBuilder((vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 6) {
            greaterThanOrEqualExpressionBuilder_.mergeFrom(value);
          } else {
            greaterThanOrEqualExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      public Builder clearGreaterThanOrEqualExpression() {
        if (greaterThanOrEqualExpressionBuilder_ == null) {
          if (expressionCase_ == 6) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 6) {
            expressionCase_ = 0;
            expression_ = null;
          }
          greaterThanOrEqualExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      public vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder getGreaterThanOrEqualExpressionBuilder() {
        return getGreaterThanOrEqualExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder getGreaterThanOrEqualExpressionOrBuilder() {
        if ((expressionCase_ == 6) && (greaterThanOrEqualExpressionBuilder_ != null)) {
          return greaterThanOrEqualExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 6) {
            return (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_;
          }
          return vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._GreaterThanOrEqualExpression greater_than_or_equal_expression = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._GreaterThanOrEqualExpression, vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder, vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder> 
          getGreaterThanOrEqualExpressionFieldBuilder() {
        if (greaterThanOrEqualExpressionBuilder_ == null) {
          if (!(expressionCase_ == 6)) {
            expression_ = vectorindex.Vectorindex._GreaterThanOrEqualExpression.getDefaultInstance();
          }
          greaterThanOrEqualExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._GreaterThanOrEqualExpression, vectorindex.Vectorindex._GreaterThanOrEqualExpression.Builder, vectorindex.Vectorindex._GreaterThanOrEqualExpressionOrBuilder>(
                  (vectorindex.Vectorindex._GreaterThanOrEqualExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 6;
        onChanged();
        return greaterThanOrEqualExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._LessThanExpression, vectorindex.Vectorindex._LessThanExpression.Builder, vectorindex.Vectorindex._LessThanExpressionOrBuilder> lessThanExpressionBuilder_;
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       * @return Whether the lessThanExpression field is set.
       */
      @java.lang.Override
      public boolean hasLessThanExpression() {
        return expressionCase_ == 7;
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       * @return The lessThanExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._LessThanExpression getLessThanExpression() {
        if (lessThanExpressionBuilder_ == null) {
          if (expressionCase_ == 7) {
            return (vectorindex.Vectorindex._LessThanExpression) expression_;
          }
          return vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 7) {
            return lessThanExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      public Builder setLessThanExpression(vectorindex.Vectorindex._LessThanExpression value) {
        if (lessThanExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          lessThanExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 7;
        return this;
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      public Builder setLessThanExpression(
          vectorindex.Vectorindex._LessThanExpression.Builder builderForValue) {
        if (lessThanExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          lessThanExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 7;
        return this;
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      public Builder mergeLessThanExpression(vectorindex.Vectorindex._LessThanExpression value) {
        if (lessThanExpressionBuilder_ == null) {
          if (expressionCase_ == 7 &&
              expression_ != vectorindex.Vectorindex._LessThanExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._LessThanExpression.newBuilder((vectorindex.Vectorindex._LessThanExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 7) {
            lessThanExpressionBuilder_.mergeFrom(value);
          } else {
            lessThanExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 7;
        return this;
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      public Builder clearLessThanExpression() {
        if (lessThanExpressionBuilder_ == null) {
          if (expressionCase_ == 7) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 7) {
            expressionCase_ = 0;
            expression_ = null;
          }
          lessThanExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      public vectorindex.Vectorindex._LessThanExpression.Builder getLessThanExpressionBuilder() {
        return getLessThanExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._LessThanExpressionOrBuilder getLessThanExpressionOrBuilder() {
        if ((expressionCase_ == 7) && (lessThanExpressionBuilder_ != null)) {
          return lessThanExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 7) {
            return (vectorindex.Vectorindex._LessThanExpression) expression_;
          }
          return vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._LessThanExpression less_than_expression = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._LessThanExpression, vectorindex.Vectorindex._LessThanExpression.Builder, vectorindex.Vectorindex._LessThanExpressionOrBuilder> 
          getLessThanExpressionFieldBuilder() {
        if (lessThanExpressionBuilder_ == null) {
          if (!(expressionCase_ == 7)) {
            expression_ = vectorindex.Vectorindex._LessThanExpression.getDefaultInstance();
          }
          lessThanExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._LessThanExpression, vectorindex.Vectorindex._LessThanExpression.Builder, vectorindex.Vectorindex._LessThanExpressionOrBuilder>(
                  (vectorindex.Vectorindex._LessThanExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 7;
        onChanged();
        return lessThanExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._LessThanOrEqualExpression, vectorindex.Vectorindex._LessThanOrEqualExpression.Builder, vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder> lessThanOrEqualExpressionBuilder_;
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       * @return Whether the lessThanOrEqualExpression field is set.
       */
      @java.lang.Override
      public boolean hasLessThanOrEqualExpression() {
        return expressionCase_ == 8;
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       * @return The lessThanOrEqualExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._LessThanOrEqualExpression getLessThanOrEqualExpression() {
        if (lessThanOrEqualExpressionBuilder_ == null) {
          if (expressionCase_ == 8) {
            return (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_;
          }
          return vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 8) {
            return lessThanOrEqualExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      public Builder setLessThanOrEqualExpression(vectorindex.Vectorindex._LessThanOrEqualExpression value) {
        if (lessThanOrEqualExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          lessThanOrEqualExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 8;
        return this;
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      public Builder setLessThanOrEqualExpression(
          vectorindex.Vectorindex._LessThanOrEqualExpression.Builder builderForValue) {
        if (lessThanOrEqualExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          lessThanOrEqualExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 8;
        return this;
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      public Builder mergeLessThanOrEqualExpression(vectorindex.Vectorindex._LessThanOrEqualExpression value) {
        if (lessThanOrEqualExpressionBuilder_ == null) {
          if (expressionCase_ == 8 &&
              expression_ != vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._LessThanOrEqualExpression.newBuilder((vectorindex.Vectorindex._LessThanOrEqualExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 8) {
            lessThanOrEqualExpressionBuilder_.mergeFrom(value);
          } else {
            lessThanOrEqualExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 8;
        return this;
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      public Builder clearLessThanOrEqualExpression() {
        if (lessThanOrEqualExpressionBuilder_ == null) {
          if (expressionCase_ == 8) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 8) {
            expressionCase_ = 0;
            expression_ = null;
          }
          lessThanOrEqualExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      public vectorindex.Vectorindex._LessThanOrEqualExpression.Builder getLessThanOrEqualExpressionBuilder() {
        return getLessThanOrEqualExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder getLessThanOrEqualExpressionOrBuilder() {
        if ((expressionCase_ == 8) && (lessThanOrEqualExpressionBuilder_ != null)) {
          return lessThanOrEqualExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 8) {
            return (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_;
          }
          return vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._LessThanOrEqualExpression less_than_or_equal_expression = 8;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._LessThanOrEqualExpression, vectorindex.Vectorindex._LessThanOrEqualExpression.Builder, vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder> 
          getLessThanOrEqualExpressionFieldBuilder() {
        if (lessThanOrEqualExpressionBuilder_ == null) {
          if (!(expressionCase_ == 8)) {
            expression_ = vectorindex.Vectorindex._LessThanOrEqualExpression.getDefaultInstance();
          }
          lessThanOrEqualExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._LessThanOrEqualExpression, vectorindex.Vectorindex._LessThanOrEqualExpression.Builder, vectorindex.Vectorindex._LessThanOrEqualExpressionOrBuilder>(
                  (vectorindex.Vectorindex._LessThanOrEqualExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 8;
        onChanged();
        return lessThanOrEqualExpressionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ListContainsExpression, vectorindex.Vectorindex._ListContainsExpression.Builder, vectorindex.Vectorindex._ListContainsExpressionOrBuilder> listContainsExpressionBuilder_;
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       * @return Whether the listContainsExpression field is set.
       */
      @java.lang.Override
      public boolean hasListContainsExpression() {
        return expressionCase_ == 9;
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       * @return The listContainsExpression.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ListContainsExpression getListContainsExpression() {
        if (listContainsExpressionBuilder_ == null) {
          if (expressionCase_ == 9) {
            return (vectorindex.Vectorindex._ListContainsExpression) expression_;
          }
          return vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
        } else {
          if (expressionCase_ == 9) {
            return listContainsExpressionBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      public Builder setListContainsExpression(vectorindex.Vectorindex._ListContainsExpression value) {
        if (listContainsExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expression_ = value;
          onChanged();
        } else {
          listContainsExpressionBuilder_.setMessage(value);
        }
        expressionCase_ = 9;
        return this;
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      public Builder setListContainsExpression(
          vectorindex.Vectorindex._ListContainsExpression.Builder builderForValue) {
        if (listContainsExpressionBuilder_ == null) {
          expression_ = builderForValue.build();
          onChanged();
        } else {
          listContainsExpressionBuilder_.setMessage(builderForValue.build());
        }
        expressionCase_ = 9;
        return this;
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      public Builder mergeListContainsExpression(vectorindex.Vectorindex._ListContainsExpression value) {
        if (listContainsExpressionBuilder_ == null) {
          if (expressionCase_ == 9 &&
              expression_ != vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance()) {
            expression_ = vectorindex.Vectorindex._ListContainsExpression.newBuilder((vectorindex.Vectorindex._ListContainsExpression) expression_)
                .mergeFrom(value).buildPartial();
          } else {
            expression_ = value;
          }
          onChanged();
        } else {
          if (expressionCase_ == 9) {
            listContainsExpressionBuilder_.mergeFrom(value);
          } else {
            listContainsExpressionBuilder_.setMessage(value);
          }
        }
        expressionCase_ = 9;
        return this;
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      public Builder clearListContainsExpression() {
        if (listContainsExpressionBuilder_ == null) {
          if (expressionCase_ == 9) {
            expressionCase_ = 0;
            expression_ = null;
            onChanged();
          }
        } else {
          if (expressionCase_ == 9) {
            expressionCase_ = 0;
            expression_ = null;
          }
          listContainsExpressionBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      public vectorindex.Vectorindex._ListContainsExpression.Builder getListContainsExpressionBuilder() {
        return getListContainsExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ListContainsExpressionOrBuilder getListContainsExpressionOrBuilder() {
        if ((expressionCase_ == 9) && (listContainsExpressionBuilder_ != null)) {
          return listContainsExpressionBuilder_.getMessageOrBuilder();
        } else {
          if (expressionCase_ == 9) {
            return (vectorindex.Vectorindex._ListContainsExpression) expression_;
          }
          return vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ListContainsExpression list_contains_expression = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ListContainsExpression, vectorindex.Vectorindex._ListContainsExpression.Builder, vectorindex.Vectorindex._ListContainsExpressionOrBuilder> 
          getListContainsExpressionFieldBuilder() {
        if (listContainsExpressionBuilder_ == null) {
          if (!(expressionCase_ == 9)) {
            expression_ = vectorindex.Vectorindex._ListContainsExpression.getDefaultInstance();
          }
          listContainsExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._ListContainsExpression, vectorindex.Vectorindex._ListContainsExpression.Builder, vectorindex.Vectorindex._ListContainsExpressionOrBuilder>(
                  (vectorindex.Vectorindex._ListContainsExpression) expression_,
                  getParentForChildren(),
                  isClean());
          expression_ = null;
        }
        expressionCase_ = 9;
        onChanged();
        return listContainsExpressionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._FilterExpression)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._FilterExpression)
    private static final vectorindex.Vectorindex._FilterExpression DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._FilterExpression();
    }

    public static vectorindex.Vectorindex._FilterExpression getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_FilterExpression>
        PARSER = new com.google.protobuf.AbstractParser<_FilterExpression>() {
      @java.lang.Override
      public _FilterExpression parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_FilterExpression> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_FilterExpression> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _NoScoreThresholdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._NoScoreThreshold)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code vectorindex._NoScoreThreshold}
   */
  public static final class _NoScoreThreshold extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._NoScoreThreshold)
      _NoScoreThresholdOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _NoScoreThreshold.newBuilder() to construct.
    private _NoScoreThreshold(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _NoScoreThreshold() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _NoScoreThreshold();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__NoScoreThreshold_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__NoScoreThreshold_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._NoScoreThreshold.class, vectorindex.Vectorindex._NoScoreThreshold.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._NoScoreThreshold)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._NoScoreThreshold other = (vectorindex.Vectorindex._NoScoreThreshold) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._NoScoreThreshold parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._NoScoreThreshold prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._NoScoreThreshold}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._NoScoreThreshold)
        vectorindex.Vectorindex._NoScoreThresholdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__NoScoreThreshold_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__NoScoreThreshold_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._NoScoreThreshold.class, vectorindex.Vectorindex._NoScoreThreshold.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._NoScoreThreshold.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__NoScoreThreshold_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThreshold getDefaultInstanceForType() {
        return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThreshold build() {
        vectorindex.Vectorindex._NoScoreThreshold result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThreshold buildPartial() {
        vectorindex.Vectorindex._NoScoreThreshold result = new vectorindex.Vectorindex._NoScoreThreshold(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._NoScoreThreshold) {
          return mergeFrom((vectorindex.Vectorindex._NoScoreThreshold)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._NoScoreThreshold other) {
        if (other == vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._NoScoreThreshold)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._NoScoreThreshold)
    private static final vectorindex.Vectorindex._NoScoreThreshold DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._NoScoreThreshold();
    }

    public static vectorindex.Vectorindex._NoScoreThreshold getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_NoScoreThreshold>
        PARSER = new com.google.protobuf.AbstractParser<_NoScoreThreshold>() {
      @java.lang.Override
      public _NoScoreThreshold parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_NoScoreThreshold> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_NoScoreThreshold> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._NoScoreThreshold getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _SearchRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._SearchRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * uint32 top_k = 2;
     * @return The topK.
     */
    int getTopK();

    /**
     * .vectorindex._Vector query_vector = 3;
     * @return Whether the queryVector field is set.
     */
    boolean hasQueryVector();
    /**
     * .vectorindex._Vector query_vector = 3;
     * @return The queryVector.
     */
    vectorindex.Vectorindex._Vector getQueryVector();
    /**
     * .vectorindex._Vector query_vector = 3;
     */
    vectorindex.Vectorindex._VectorOrBuilder getQueryVectorOrBuilder();

    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return Whether the metadataFields field is set.
     */
    boolean hasMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return The metadataFields.
     */
    vectorindex.Vectorindex._MetadataRequest getMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     */
    vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder();

    /**
     * float score_threshold = 5;
     * @return Whether the scoreThreshold field is set.
     */
    boolean hasScoreThreshold();
    /**
     * float score_threshold = 5;
     * @return The scoreThreshold.
     */
    float getScoreThreshold();

    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return Whether the noScoreThreshold field is set.
     */
    boolean hasNoScoreThreshold();
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return The noScoreThreshold.
     */
    vectorindex.Vectorindex._NoScoreThreshold getNoScoreThreshold();
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     */
    vectorindex.Vectorindex._NoScoreThresholdOrBuilder getNoScoreThresholdOrBuilder();

    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return Whether the filterExpression field is set.
     */
    boolean hasFilterExpression();
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return The filterExpression.
     */
    vectorindex.Vectorindex._FilterExpression getFilterExpression();
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getFilterExpressionOrBuilder();

    vectorindex.Vectorindex._SearchRequest.ThresholdCase getThresholdCase();
  }
  /**
   * Protobuf type {@code vectorindex._SearchRequest}
   */
  public static final class _SearchRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._SearchRequest)
      _SearchRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _SearchRequest.newBuilder() to construct.
    private _SearchRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _SearchRequest() {
      indexName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _SearchRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._SearchRequest.class, vectorindex.Vectorindex._SearchRequest.Builder.class);
    }

    private int thresholdCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object threshold_;
    public enum ThresholdCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      SCORE_THRESHOLD(5),
      NO_SCORE_THRESHOLD(6),
      THRESHOLD_NOT_SET(0);
      private final int value;
      private ThresholdCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ThresholdCase valueOf(int value) {
        return forNumber(value);
      }

      public static ThresholdCase forNumber(int value) {
        switch (value) {
          case 5: return SCORE_THRESHOLD;
          case 6: return NO_SCORE_THRESHOLD;
          case 0: return THRESHOLD_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ThresholdCase
    getThresholdCase() {
      return ThresholdCase.forNumber(
          thresholdCase_);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOP_K_FIELD_NUMBER = 2;
    private int topK_ = 0;
    /**
     * uint32 top_k = 2;
     * @return The topK.
     */
    @java.lang.Override
    public int getTopK() {
      return topK_;
    }

    public static final int QUERY_VECTOR_FIELD_NUMBER = 3;
    private vectorindex.Vectorindex._Vector queryVector_;
    /**
     * .vectorindex._Vector query_vector = 3;
     * @return Whether the queryVector field is set.
     */
    @java.lang.Override
    public boolean hasQueryVector() {
      return queryVector_ != null;
    }
    /**
     * .vectorindex._Vector query_vector = 3;
     * @return The queryVector.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Vector getQueryVector() {
      return queryVector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
    }
    /**
     * .vectorindex._Vector query_vector = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._VectorOrBuilder getQueryVectorOrBuilder() {
      return queryVector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
    }

    public static final int METADATA_FIELDS_FIELD_NUMBER = 4;
    private vectorindex.Vectorindex._MetadataRequest metadataFields_;
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return Whether the metadataFields field is set.
     */
    @java.lang.Override
    public boolean hasMetadataFields() {
      return metadataFields_ != null;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return The metadataFields.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }

    public static final int SCORE_THRESHOLD_FIELD_NUMBER = 5;
    /**
     * float score_threshold = 5;
     * @return Whether the scoreThreshold field is set.
     */
    @java.lang.Override
    public boolean hasScoreThreshold() {
      return thresholdCase_ == 5;
    }
    /**
     * float score_threshold = 5;
     * @return The scoreThreshold.
     */
    @java.lang.Override
    public float getScoreThreshold() {
      if (thresholdCase_ == 5) {
        return (java.lang.Float) threshold_;
      }
      return 0F;
    }

    public static final int NO_SCORE_THRESHOLD_FIELD_NUMBER = 6;
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return Whether the noScoreThreshold field is set.
     */
    @java.lang.Override
    public boolean hasNoScoreThreshold() {
      return thresholdCase_ == 6;
    }
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return The noScoreThreshold.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._NoScoreThreshold getNoScoreThreshold() {
      if (thresholdCase_ == 6) {
         return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
      }
      return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
    }
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._NoScoreThresholdOrBuilder getNoScoreThresholdOrBuilder() {
      if (thresholdCase_ == 6) {
         return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
      }
      return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
    }

    public static final int FILTER_EXPRESSION_FIELD_NUMBER = 7;
    private vectorindex.Vectorindex._FilterExpression filterExpression_;
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return Whether the filterExpression field is set.
     */
    @java.lang.Override
    public boolean hasFilterExpression() {
      return filterExpression_ != null;
    }
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return The filterExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getFilterExpression() {
      return filterExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
    }
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getFilterExpressionOrBuilder() {
      return filterExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      if (topK_ != 0) {
        output.writeUInt32(2, topK_);
      }
      if (queryVector_ != null) {
        output.writeMessage(3, getQueryVector());
      }
      if (metadataFields_ != null) {
        output.writeMessage(4, getMetadataFields());
      }
      if (thresholdCase_ == 5) {
        output.writeFloat(
            5, (float)((java.lang.Float) threshold_));
      }
      if (thresholdCase_ == 6) {
        output.writeMessage(6, (vectorindex.Vectorindex._NoScoreThreshold) threshold_);
      }
      if (filterExpression_ != null) {
        output.writeMessage(7, getFilterExpression());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      if (topK_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, topK_);
      }
      if (queryVector_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getQueryVector());
      }
      if (metadataFields_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getMetadataFields());
      }
      if (thresholdCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              5, (float)((java.lang.Float) threshold_));
      }
      if (thresholdCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (vectorindex.Vectorindex._NoScoreThreshold) threshold_);
      }
      if (filterExpression_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getFilterExpression());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._SearchRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._SearchRequest other = (vectorindex.Vectorindex._SearchRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (getTopK()
          != other.getTopK()) return false;
      if (hasQueryVector() != other.hasQueryVector()) return false;
      if (hasQueryVector()) {
        if (!getQueryVector()
            .equals(other.getQueryVector())) return false;
      }
      if (hasMetadataFields() != other.hasMetadataFields()) return false;
      if (hasMetadataFields()) {
        if (!getMetadataFields()
            .equals(other.getMetadataFields())) return false;
      }
      if (hasFilterExpression() != other.hasFilterExpression()) return false;
      if (hasFilterExpression()) {
        if (!getFilterExpression()
            .equals(other.getFilterExpression())) return false;
      }
      if (!getThresholdCase().equals(other.getThresholdCase())) return false;
      switch (thresholdCase_) {
        case 5:
          if (java.lang.Float.floatToIntBits(getScoreThreshold())
              != java.lang.Float.floatToIntBits(
                  other.getScoreThreshold())) return false;
          break;
        case 6:
          if (!getNoScoreThreshold()
              .equals(other.getNoScoreThreshold())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      hash = (37 * hash) + TOP_K_FIELD_NUMBER;
      hash = (53 * hash) + getTopK();
      if (hasQueryVector()) {
        hash = (37 * hash) + QUERY_VECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getQueryVector().hashCode();
      }
      if (hasMetadataFields()) {
        hash = (37 * hash) + METADATA_FIELDS_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataFields().hashCode();
      }
      if (hasFilterExpression()) {
        hash = (37 * hash) + FILTER_EXPRESSION_FIELD_NUMBER;
        hash = (53 * hash) + getFilterExpression().hashCode();
      }
      switch (thresholdCase_) {
        case 5:
          hash = (37 * hash) + SCORE_THRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getScoreThreshold());
          break;
        case 6:
          hash = (37 * hash) + NO_SCORE_THRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + getNoScoreThreshold().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._SearchRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._SearchRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._SearchRequest)
        vectorindex.Vectorindex._SearchRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._SearchRequest.class, vectorindex.Vectorindex._SearchRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._SearchRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        topK_ = 0;
        queryVector_ = null;
        if (queryVectorBuilder_ != null) {
          queryVectorBuilder_.dispose();
          queryVectorBuilder_ = null;
        }
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        if (noScoreThresholdBuilder_ != null) {
          noScoreThresholdBuilder_.clear();
        }
        filterExpression_ = null;
        if (filterExpressionBuilder_ != null) {
          filterExpressionBuilder_.dispose();
          filterExpressionBuilder_ = null;
        }
        thresholdCase_ = 0;
        threshold_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._SearchRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchRequest build() {
        vectorindex.Vectorindex._SearchRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchRequest buildPartial() {
        vectorindex.Vectorindex._SearchRequest result = new vectorindex.Vectorindex._SearchRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._SearchRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.topK_ = topK_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.queryVector_ = queryVectorBuilder_ == null
              ? queryVector_
              : queryVectorBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.metadataFields_ = metadataFieldsBuilder_ == null
              ? metadataFields_
              : metadataFieldsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.filterExpression_ = filterExpressionBuilder_ == null
              ? filterExpression_
              : filterExpressionBuilder_.build();
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._SearchRequest result) {
        result.thresholdCase_ = thresholdCase_;
        result.threshold_ = this.threshold_;
        if (thresholdCase_ == 6 &&
            noScoreThresholdBuilder_ != null) {
          result.threshold_ = noScoreThresholdBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._SearchRequest) {
          return mergeFrom((vectorindex.Vectorindex._SearchRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._SearchRequest other) {
        if (other == vectorindex.Vectorindex._SearchRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getTopK() != 0) {
          setTopK(other.getTopK());
        }
        if (other.hasQueryVector()) {
          mergeQueryVector(other.getQueryVector());
        }
        if (other.hasMetadataFields()) {
          mergeMetadataFields(other.getMetadataFields());
        }
        if (other.hasFilterExpression()) {
          mergeFilterExpression(other.getFilterExpression());
        }
        switch (other.getThresholdCase()) {
          case SCORE_THRESHOLD: {
            setScoreThreshold(other.getScoreThreshold());
            break;
          }
          case NO_SCORE_THRESHOLD: {
            mergeNoScoreThreshold(other.getNoScoreThreshold());
            break;
          }
          case THRESHOLD_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                topK_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getQueryVectorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getMetadataFieldsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 45: {
                threshold_ = input.readFloat();
                thresholdCase_ = 5;
                break;
              } // case 45
              case 50: {
                input.readMessage(
                    getNoScoreThresholdFieldBuilder().getBuilder(),
                    extensionRegistry);
                thresholdCase_ = 6;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getFilterExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int thresholdCase_ = 0;
      private java.lang.Object threshold_;
      public ThresholdCase
          getThresholdCase() {
        return ThresholdCase.forNumber(
            thresholdCase_);
      }

      public Builder clearThreshold() {
        thresholdCase_ = 0;
        threshold_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int topK_ ;
      /**
       * uint32 top_k = 2;
       * @return The topK.
       */
      @java.lang.Override
      public int getTopK() {
        return topK_;
      }
      /**
       * uint32 top_k = 2;
       * @param value The topK to set.
       * @return This builder for chaining.
       */
      public Builder setTopK(int value) {

        topK_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * uint32 top_k = 2;
       * @return This builder for chaining.
       */
      public Builder clearTopK() {
        bitField0_ = (bitField0_ & ~0x00000002);
        topK_ = 0;
        onChanged();
        return this;
      }

      private vectorindex.Vectorindex._Vector queryVector_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> queryVectorBuilder_;
      /**
       * .vectorindex._Vector query_vector = 3;
       * @return Whether the queryVector field is set.
       */
      public boolean hasQueryVector() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       * @return The queryVector.
       */
      public vectorindex.Vectorindex._Vector getQueryVector() {
        if (queryVectorBuilder_ == null) {
          return queryVector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
        } else {
          return queryVectorBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder setQueryVector(vectorindex.Vectorindex._Vector value) {
        if (queryVectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          queryVector_ = value;
        } else {
          queryVectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder setQueryVector(
          vectorindex.Vectorindex._Vector.Builder builderForValue) {
        if (queryVectorBuilder_ == null) {
          queryVector_ = builderForValue.build();
        } else {
          queryVectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder mergeQueryVector(vectorindex.Vectorindex._Vector value) {
        if (queryVectorBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            queryVector_ != null &&
            queryVector_ != vectorindex.Vectorindex._Vector.getDefaultInstance()) {
            getQueryVectorBuilder().mergeFrom(value);
          } else {
            queryVector_ = value;
          }
        } else {
          queryVectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder clearQueryVector() {
        bitField0_ = (bitField0_ & ~0x00000004);
        queryVector_ = null;
        if (queryVectorBuilder_ != null) {
          queryVectorBuilder_.dispose();
          queryVectorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public vectorindex.Vectorindex._Vector.Builder getQueryVectorBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getQueryVectorFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public vectorindex.Vectorindex._VectorOrBuilder getQueryVectorOrBuilder() {
        if (queryVectorBuilder_ != null) {
          return queryVectorBuilder_.getMessageOrBuilder();
        } else {
          return queryVector_ == null ?
              vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
        }
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> 
          getQueryVectorFieldBuilder() {
        if (queryVectorBuilder_ == null) {
          queryVectorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder>(
                  getQueryVector(),
                  getParentForChildren(),
                  isClean());
          queryVector_ = null;
        }
        return queryVectorBuilder_;
      }

      private vectorindex.Vectorindex._MetadataRequest metadataFields_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> metadataFieldsBuilder_;
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       * @return Whether the metadataFields field is set.
       */
      public boolean hasMetadataFields() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       * @return The metadataFields.
       */
      public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
        if (metadataFieldsBuilder_ == null) {
          return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        } else {
          return metadataFieldsBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder setMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadataFields_ = value;
        } else {
          metadataFieldsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder setMetadataFields(
          vectorindex.Vectorindex._MetadataRequest.Builder builderForValue) {
        if (metadataFieldsBuilder_ == null) {
          metadataFields_ = builderForValue.build();
        } else {
          metadataFieldsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder mergeMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            metadataFields_ != null &&
            metadataFields_ != vectorindex.Vectorindex._MetadataRequest.getDefaultInstance()) {
            getMetadataFieldsBuilder().mergeFrom(value);
          } else {
            metadataFields_ = value;
          }
        } else {
          metadataFieldsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder clearMetadataFields() {
        bitField0_ = (bitField0_ & ~0x00000008);
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public vectorindex.Vectorindex._MetadataRequest.Builder getMetadataFieldsBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getMetadataFieldsFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
        if (metadataFieldsBuilder_ != null) {
          return metadataFieldsBuilder_.getMessageOrBuilder();
        } else {
          return metadataFields_ == null ?
              vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> 
          getMetadataFieldsFieldBuilder() {
        if (metadataFieldsBuilder_ == null) {
          metadataFieldsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder>(
                  getMetadataFields(),
                  getParentForChildren(),
                  isClean());
          metadataFields_ = null;
        }
        return metadataFieldsBuilder_;
      }

      /**
       * float score_threshold = 5;
       * @return Whether the scoreThreshold field is set.
       */
      public boolean hasScoreThreshold() {
        return thresholdCase_ == 5;
      }
      /**
       * float score_threshold = 5;
       * @return The scoreThreshold.
       */
      public float getScoreThreshold() {
        if (thresholdCase_ == 5) {
          return (java.lang.Float) threshold_;
        }
        return 0F;
      }
      /**
       * float score_threshold = 5;
       * @param value The scoreThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setScoreThreshold(float value) {

        thresholdCase_ = 5;
        threshold_ = value;
        onChanged();
        return this;
      }
      /**
       * float score_threshold = 5;
       * @return This builder for chaining.
       */
      public Builder clearScoreThreshold() {
        if (thresholdCase_ == 5) {
          thresholdCase_ = 0;
          threshold_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._NoScoreThreshold, vectorindex.Vectorindex._NoScoreThreshold.Builder, vectorindex.Vectorindex._NoScoreThresholdOrBuilder> noScoreThresholdBuilder_;
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       * @return Whether the noScoreThreshold field is set.
       */
      @java.lang.Override
      public boolean hasNoScoreThreshold() {
        return thresholdCase_ == 6;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       * @return The noScoreThreshold.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThreshold getNoScoreThreshold() {
        if (noScoreThresholdBuilder_ == null) {
          if (thresholdCase_ == 6) {
            return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
          }
          return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
        } else {
          if (thresholdCase_ == 6) {
            return noScoreThresholdBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder setNoScoreThreshold(vectorindex.Vectorindex._NoScoreThreshold value) {
        if (noScoreThresholdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          threshold_ = value;
          onChanged();
        } else {
          noScoreThresholdBuilder_.setMessage(value);
        }
        thresholdCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder setNoScoreThreshold(
          vectorindex.Vectorindex._NoScoreThreshold.Builder builderForValue) {
        if (noScoreThresholdBuilder_ == null) {
          threshold_ = builderForValue.build();
          onChanged();
        } else {
          noScoreThresholdBuilder_.setMessage(builderForValue.build());
        }
        thresholdCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder mergeNoScoreThreshold(vectorindex.Vectorindex._NoScoreThreshold value) {
        if (noScoreThresholdBuilder_ == null) {
          if (thresholdCase_ == 6 &&
              threshold_ != vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance()) {
            threshold_ = vectorindex.Vectorindex._NoScoreThreshold.newBuilder((vectorindex.Vectorindex._NoScoreThreshold) threshold_)
                .mergeFrom(value).buildPartial();
          } else {
            threshold_ = value;
          }
          onChanged();
        } else {
          if (thresholdCase_ == 6) {
            noScoreThresholdBuilder_.mergeFrom(value);
          } else {
            noScoreThresholdBuilder_.setMessage(value);
          }
        }
        thresholdCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder clearNoScoreThreshold() {
        if (noScoreThresholdBuilder_ == null) {
          if (thresholdCase_ == 6) {
            thresholdCase_ = 0;
            threshold_ = null;
            onChanged();
          }
        } else {
          if (thresholdCase_ == 6) {
            thresholdCase_ = 0;
            threshold_ = null;
          }
          noScoreThresholdBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public vectorindex.Vectorindex._NoScoreThreshold.Builder getNoScoreThresholdBuilder() {
        return getNoScoreThresholdFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThresholdOrBuilder getNoScoreThresholdOrBuilder() {
        if ((thresholdCase_ == 6) && (noScoreThresholdBuilder_ != null)) {
          return noScoreThresholdBuilder_.getMessageOrBuilder();
        } else {
          if (thresholdCase_ == 6) {
            return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
          }
          return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._NoScoreThreshold, vectorindex.Vectorindex._NoScoreThreshold.Builder, vectorindex.Vectorindex._NoScoreThresholdOrBuilder> 
          getNoScoreThresholdFieldBuilder() {
        if (noScoreThresholdBuilder_ == null) {
          if (!(thresholdCase_ == 6)) {
            threshold_ = vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
          }
          noScoreThresholdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._NoScoreThreshold, vectorindex.Vectorindex._NoScoreThreshold.Builder, vectorindex.Vectorindex._NoScoreThresholdOrBuilder>(
                  (vectorindex.Vectorindex._NoScoreThreshold) threshold_,
                  getParentForChildren(),
                  isClean());
          threshold_ = null;
        }
        thresholdCase_ = 6;
        onChanged();
        return noScoreThresholdBuilder_;
      }

      private vectorindex.Vectorindex._FilterExpression filterExpression_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> filterExpressionBuilder_;
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       * @return Whether the filterExpression field is set.
       */
      public boolean hasFilterExpression() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       * @return The filterExpression.
       */
      public vectorindex.Vectorindex._FilterExpression getFilterExpression() {
        if (filterExpressionBuilder_ == null) {
          return filterExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
        } else {
          return filterExpressionBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder setFilterExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (filterExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          filterExpression_ = value;
        } else {
          filterExpressionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder setFilterExpression(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (filterExpressionBuilder_ == null) {
          filterExpression_ = builderForValue.build();
        } else {
          filterExpressionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder mergeFilterExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (filterExpressionBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            filterExpression_ != null &&
            filterExpression_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getFilterExpressionBuilder().mergeFrom(value);
          } else {
            filterExpression_ = value;
          }
        } else {
          filterExpressionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder clearFilterExpression() {
        bitField0_ = (bitField0_ & ~0x00000040);
        filterExpression_ = null;
        if (filterExpressionBuilder_ != null) {
          filterExpressionBuilder_.dispose();
          filterExpressionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getFilterExpressionBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getFilterExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getFilterExpressionOrBuilder() {
        if (filterExpressionBuilder_ != null) {
          return filterExpressionBuilder_.getMessageOrBuilder();
        } else {
          return filterExpression_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
        }
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getFilterExpressionFieldBuilder() {
        if (filterExpressionBuilder_ == null) {
          filterExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getFilterExpression(),
                  getParentForChildren(),
                  isClean());
          filterExpression_ = null;
        }
        return filterExpressionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._SearchRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._SearchRequest)
    private static final vectorindex.Vectorindex._SearchRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._SearchRequest();
    }

    public static vectorindex.Vectorindex._SearchRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_SearchRequest>
        PARSER = new com.google.protobuf.AbstractParser<_SearchRequest>() {
      @java.lang.Override
      public _SearchRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_SearchRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_SearchRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._SearchRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _SearchAndFetchVectorsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._SearchAndFetchVectorsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * uint32 top_k = 2;
     * @return The topK.
     */
    int getTopK();

    /**
     * .vectorindex._Vector query_vector = 3;
     * @return Whether the queryVector field is set.
     */
    boolean hasQueryVector();
    /**
     * .vectorindex._Vector query_vector = 3;
     * @return The queryVector.
     */
    vectorindex.Vectorindex._Vector getQueryVector();
    /**
     * .vectorindex._Vector query_vector = 3;
     */
    vectorindex.Vectorindex._VectorOrBuilder getQueryVectorOrBuilder();

    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return Whether the metadataFields field is set.
     */
    boolean hasMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return The metadataFields.
     */
    vectorindex.Vectorindex._MetadataRequest getMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     */
    vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder();

    /**
     * float score_threshold = 5;
     * @return Whether the scoreThreshold field is set.
     */
    boolean hasScoreThreshold();
    /**
     * float score_threshold = 5;
     * @return The scoreThreshold.
     */
    float getScoreThreshold();

    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return Whether the noScoreThreshold field is set.
     */
    boolean hasNoScoreThreshold();
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return The noScoreThreshold.
     */
    vectorindex.Vectorindex._NoScoreThreshold getNoScoreThreshold();
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     */
    vectorindex.Vectorindex._NoScoreThresholdOrBuilder getNoScoreThresholdOrBuilder();

    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return Whether the filterExpression field is set.
     */
    boolean hasFilterExpression();
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return The filterExpression.
     */
    vectorindex.Vectorindex._FilterExpression getFilterExpression();
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     */
    vectorindex.Vectorindex._FilterExpressionOrBuilder getFilterExpressionOrBuilder();

    vectorindex.Vectorindex._SearchAndFetchVectorsRequest.ThresholdCase getThresholdCase();
  }
  /**
   * Protobuf type {@code vectorindex._SearchAndFetchVectorsRequest}
   */
  public static final class _SearchAndFetchVectorsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._SearchAndFetchVectorsRequest)
      _SearchAndFetchVectorsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _SearchAndFetchVectorsRequest.newBuilder() to construct.
    private _SearchAndFetchVectorsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _SearchAndFetchVectorsRequest() {
      indexName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _SearchAndFetchVectorsRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._SearchAndFetchVectorsRequest.class, vectorindex.Vectorindex._SearchAndFetchVectorsRequest.Builder.class);
    }

    private int thresholdCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object threshold_;
    public enum ThresholdCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      SCORE_THRESHOLD(5),
      NO_SCORE_THRESHOLD(6),
      THRESHOLD_NOT_SET(0);
      private final int value;
      private ThresholdCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ThresholdCase valueOf(int value) {
        return forNumber(value);
      }

      public static ThresholdCase forNumber(int value) {
        switch (value) {
          case 5: return SCORE_THRESHOLD;
          case 6: return NO_SCORE_THRESHOLD;
          case 0: return THRESHOLD_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ThresholdCase
    getThresholdCase() {
      return ThresholdCase.forNumber(
          thresholdCase_);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOP_K_FIELD_NUMBER = 2;
    private int topK_ = 0;
    /**
     * uint32 top_k = 2;
     * @return The topK.
     */
    @java.lang.Override
    public int getTopK() {
      return topK_;
    }

    public static final int QUERY_VECTOR_FIELD_NUMBER = 3;
    private vectorindex.Vectorindex._Vector queryVector_;
    /**
     * .vectorindex._Vector query_vector = 3;
     * @return Whether the queryVector field is set.
     */
    @java.lang.Override
    public boolean hasQueryVector() {
      return queryVector_ != null;
    }
    /**
     * .vectorindex._Vector query_vector = 3;
     * @return The queryVector.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Vector getQueryVector() {
      return queryVector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
    }
    /**
     * .vectorindex._Vector query_vector = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._VectorOrBuilder getQueryVectorOrBuilder() {
      return queryVector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
    }

    public static final int METADATA_FIELDS_FIELD_NUMBER = 4;
    private vectorindex.Vectorindex._MetadataRequest metadataFields_;
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return Whether the metadataFields field is set.
     */
    @java.lang.Override
    public boolean hasMetadataFields() {
      return metadataFields_ != null;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     * @return The metadataFields.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 4;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }

    public static final int SCORE_THRESHOLD_FIELD_NUMBER = 5;
    /**
     * float score_threshold = 5;
     * @return Whether the scoreThreshold field is set.
     */
    @java.lang.Override
    public boolean hasScoreThreshold() {
      return thresholdCase_ == 5;
    }
    /**
     * float score_threshold = 5;
     * @return The scoreThreshold.
     */
    @java.lang.Override
    public float getScoreThreshold() {
      if (thresholdCase_ == 5) {
        return (java.lang.Float) threshold_;
      }
      return 0F;
    }

    public static final int NO_SCORE_THRESHOLD_FIELD_NUMBER = 6;
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return Whether the noScoreThreshold field is set.
     */
    @java.lang.Override
    public boolean hasNoScoreThreshold() {
      return thresholdCase_ == 6;
    }
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     * @return The noScoreThreshold.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._NoScoreThreshold getNoScoreThreshold() {
      if (thresholdCase_ == 6) {
         return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
      }
      return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
    }
    /**
     * .vectorindex._NoScoreThreshold no_score_threshold = 6;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._NoScoreThresholdOrBuilder getNoScoreThresholdOrBuilder() {
      if (thresholdCase_ == 6) {
         return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
      }
      return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
    }

    public static final int FILTER_EXPRESSION_FIELD_NUMBER = 7;
    private vectorindex.Vectorindex._FilterExpression filterExpression_;
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return Whether the filterExpression field is set.
     */
    @java.lang.Override
    public boolean hasFilterExpression() {
      return filterExpression_ != null;
    }
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     * @return The filterExpression.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpression getFilterExpression() {
      return filterExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
    }
    /**
     * .vectorindex._FilterExpression filter_expression = 7;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._FilterExpressionOrBuilder getFilterExpressionOrBuilder() {
      return filterExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      if (topK_ != 0) {
        output.writeUInt32(2, topK_);
      }
      if (queryVector_ != null) {
        output.writeMessage(3, getQueryVector());
      }
      if (metadataFields_ != null) {
        output.writeMessage(4, getMetadataFields());
      }
      if (thresholdCase_ == 5) {
        output.writeFloat(
            5, (float)((java.lang.Float) threshold_));
      }
      if (thresholdCase_ == 6) {
        output.writeMessage(6, (vectorindex.Vectorindex._NoScoreThreshold) threshold_);
      }
      if (filterExpression_ != null) {
        output.writeMessage(7, getFilterExpression());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      if (topK_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, topK_);
      }
      if (queryVector_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getQueryVector());
      }
      if (metadataFields_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getMetadataFields());
      }
      if (thresholdCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              5, (float)((java.lang.Float) threshold_));
      }
      if (thresholdCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (vectorindex.Vectorindex._NoScoreThreshold) threshold_);
      }
      if (filterExpression_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getFilterExpression());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._SearchAndFetchVectorsRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._SearchAndFetchVectorsRequest other = (vectorindex.Vectorindex._SearchAndFetchVectorsRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (getTopK()
          != other.getTopK()) return false;
      if (hasQueryVector() != other.hasQueryVector()) return false;
      if (hasQueryVector()) {
        if (!getQueryVector()
            .equals(other.getQueryVector())) return false;
      }
      if (hasMetadataFields() != other.hasMetadataFields()) return false;
      if (hasMetadataFields()) {
        if (!getMetadataFields()
            .equals(other.getMetadataFields())) return false;
      }
      if (hasFilterExpression() != other.hasFilterExpression()) return false;
      if (hasFilterExpression()) {
        if (!getFilterExpression()
            .equals(other.getFilterExpression())) return false;
      }
      if (!getThresholdCase().equals(other.getThresholdCase())) return false;
      switch (thresholdCase_) {
        case 5:
          if (java.lang.Float.floatToIntBits(getScoreThreshold())
              != java.lang.Float.floatToIntBits(
                  other.getScoreThreshold())) return false;
          break;
        case 6:
          if (!getNoScoreThreshold()
              .equals(other.getNoScoreThreshold())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      hash = (37 * hash) + TOP_K_FIELD_NUMBER;
      hash = (53 * hash) + getTopK();
      if (hasQueryVector()) {
        hash = (37 * hash) + QUERY_VECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getQueryVector().hashCode();
      }
      if (hasMetadataFields()) {
        hash = (37 * hash) + METADATA_FIELDS_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataFields().hashCode();
      }
      if (hasFilterExpression()) {
        hash = (37 * hash) + FILTER_EXPRESSION_FIELD_NUMBER;
        hash = (53 * hash) + getFilterExpression().hashCode();
      }
      switch (thresholdCase_) {
        case 5:
          hash = (37 * hash) + SCORE_THRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getScoreThreshold());
          break;
        case 6:
          hash = (37 * hash) + NO_SCORE_THRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + getNoScoreThreshold().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._SearchAndFetchVectorsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._SearchAndFetchVectorsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._SearchAndFetchVectorsRequest)
        vectorindex.Vectorindex._SearchAndFetchVectorsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._SearchAndFetchVectorsRequest.class, vectorindex.Vectorindex._SearchAndFetchVectorsRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._SearchAndFetchVectorsRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        topK_ = 0;
        queryVector_ = null;
        if (queryVectorBuilder_ != null) {
          queryVectorBuilder_.dispose();
          queryVectorBuilder_ = null;
        }
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        if (noScoreThresholdBuilder_ != null) {
          noScoreThresholdBuilder_.clear();
        }
        filterExpression_ = null;
        if (filterExpressionBuilder_ != null) {
          filterExpressionBuilder_.dispose();
          filterExpressionBuilder_ = null;
        }
        thresholdCase_ = 0;
        threshold_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._SearchAndFetchVectorsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsRequest build() {
        vectorindex.Vectorindex._SearchAndFetchVectorsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsRequest buildPartial() {
        vectorindex.Vectorindex._SearchAndFetchVectorsRequest result = new vectorindex.Vectorindex._SearchAndFetchVectorsRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._SearchAndFetchVectorsRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.topK_ = topK_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.queryVector_ = queryVectorBuilder_ == null
              ? queryVector_
              : queryVectorBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.metadataFields_ = metadataFieldsBuilder_ == null
              ? metadataFields_
              : metadataFieldsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.filterExpression_ = filterExpressionBuilder_ == null
              ? filterExpression_
              : filterExpressionBuilder_.build();
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._SearchAndFetchVectorsRequest result) {
        result.thresholdCase_ = thresholdCase_;
        result.threshold_ = this.threshold_;
        if (thresholdCase_ == 6 &&
            noScoreThresholdBuilder_ != null) {
          result.threshold_ = noScoreThresholdBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._SearchAndFetchVectorsRequest) {
          return mergeFrom((vectorindex.Vectorindex._SearchAndFetchVectorsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._SearchAndFetchVectorsRequest other) {
        if (other == vectorindex.Vectorindex._SearchAndFetchVectorsRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getTopK() != 0) {
          setTopK(other.getTopK());
        }
        if (other.hasQueryVector()) {
          mergeQueryVector(other.getQueryVector());
        }
        if (other.hasMetadataFields()) {
          mergeMetadataFields(other.getMetadataFields());
        }
        if (other.hasFilterExpression()) {
          mergeFilterExpression(other.getFilterExpression());
        }
        switch (other.getThresholdCase()) {
          case SCORE_THRESHOLD: {
            setScoreThreshold(other.getScoreThreshold());
            break;
          }
          case NO_SCORE_THRESHOLD: {
            mergeNoScoreThreshold(other.getNoScoreThreshold());
            break;
          }
          case THRESHOLD_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                topK_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getQueryVectorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getMetadataFieldsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 45: {
                threshold_ = input.readFloat();
                thresholdCase_ = 5;
                break;
              } // case 45
              case 50: {
                input.readMessage(
                    getNoScoreThresholdFieldBuilder().getBuilder(),
                    extensionRegistry);
                thresholdCase_ = 6;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getFilterExpressionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int thresholdCase_ = 0;
      private java.lang.Object threshold_;
      public ThresholdCase
          getThresholdCase() {
        return ThresholdCase.forNumber(
            thresholdCase_);
      }

      public Builder clearThreshold() {
        thresholdCase_ = 0;
        threshold_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int topK_ ;
      /**
       * uint32 top_k = 2;
       * @return The topK.
       */
      @java.lang.Override
      public int getTopK() {
        return topK_;
      }
      /**
       * uint32 top_k = 2;
       * @param value The topK to set.
       * @return This builder for chaining.
       */
      public Builder setTopK(int value) {

        topK_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * uint32 top_k = 2;
       * @return This builder for chaining.
       */
      public Builder clearTopK() {
        bitField0_ = (bitField0_ & ~0x00000002);
        topK_ = 0;
        onChanged();
        return this;
      }

      private vectorindex.Vectorindex._Vector queryVector_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> queryVectorBuilder_;
      /**
       * .vectorindex._Vector query_vector = 3;
       * @return Whether the queryVector field is set.
       */
      public boolean hasQueryVector() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       * @return The queryVector.
       */
      public vectorindex.Vectorindex._Vector getQueryVector() {
        if (queryVectorBuilder_ == null) {
          return queryVector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
        } else {
          return queryVectorBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder setQueryVector(vectorindex.Vectorindex._Vector value) {
        if (queryVectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          queryVector_ = value;
        } else {
          queryVectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder setQueryVector(
          vectorindex.Vectorindex._Vector.Builder builderForValue) {
        if (queryVectorBuilder_ == null) {
          queryVector_ = builderForValue.build();
        } else {
          queryVectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder mergeQueryVector(vectorindex.Vectorindex._Vector value) {
        if (queryVectorBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            queryVector_ != null &&
            queryVector_ != vectorindex.Vectorindex._Vector.getDefaultInstance()) {
            getQueryVectorBuilder().mergeFrom(value);
          } else {
            queryVector_ = value;
          }
        } else {
          queryVectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public Builder clearQueryVector() {
        bitField0_ = (bitField0_ & ~0x00000004);
        queryVector_ = null;
        if (queryVectorBuilder_ != null) {
          queryVectorBuilder_.dispose();
          queryVectorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public vectorindex.Vectorindex._Vector.Builder getQueryVectorBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getQueryVectorFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      public vectorindex.Vectorindex._VectorOrBuilder getQueryVectorOrBuilder() {
        if (queryVectorBuilder_ != null) {
          return queryVectorBuilder_.getMessageOrBuilder();
        } else {
          return queryVector_ == null ?
              vectorindex.Vectorindex._Vector.getDefaultInstance() : queryVector_;
        }
      }
      /**
       * .vectorindex._Vector query_vector = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> 
          getQueryVectorFieldBuilder() {
        if (queryVectorBuilder_ == null) {
          queryVectorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder>(
                  getQueryVector(),
                  getParentForChildren(),
                  isClean());
          queryVector_ = null;
        }
        return queryVectorBuilder_;
      }

      private vectorindex.Vectorindex._MetadataRequest metadataFields_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> metadataFieldsBuilder_;
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       * @return Whether the metadataFields field is set.
       */
      public boolean hasMetadataFields() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       * @return The metadataFields.
       */
      public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
        if (metadataFieldsBuilder_ == null) {
          return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        } else {
          return metadataFieldsBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder setMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadataFields_ = value;
        } else {
          metadataFieldsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder setMetadataFields(
          vectorindex.Vectorindex._MetadataRequest.Builder builderForValue) {
        if (metadataFieldsBuilder_ == null) {
          metadataFields_ = builderForValue.build();
        } else {
          metadataFieldsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder mergeMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            metadataFields_ != null &&
            metadataFields_ != vectorindex.Vectorindex._MetadataRequest.getDefaultInstance()) {
            getMetadataFieldsBuilder().mergeFrom(value);
          } else {
            metadataFields_ = value;
          }
        } else {
          metadataFieldsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public Builder clearMetadataFields() {
        bitField0_ = (bitField0_ & ~0x00000008);
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public vectorindex.Vectorindex._MetadataRequest.Builder getMetadataFieldsBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getMetadataFieldsFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
        if (metadataFieldsBuilder_ != null) {
          return metadataFieldsBuilder_.getMessageOrBuilder();
        } else {
          return metadataFields_ == null ?
              vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> 
          getMetadataFieldsFieldBuilder() {
        if (metadataFieldsBuilder_ == null) {
          metadataFieldsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder>(
                  getMetadataFields(),
                  getParentForChildren(),
                  isClean());
          metadataFields_ = null;
        }
        return metadataFieldsBuilder_;
      }

      /**
       * float score_threshold = 5;
       * @return Whether the scoreThreshold field is set.
       */
      public boolean hasScoreThreshold() {
        return thresholdCase_ == 5;
      }
      /**
       * float score_threshold = 5;
       * @return The scoreThreshold.
       */
      public float getScoreThreshold() {
        if (thresholdCase_ == 5) {
          return (java.lang.Float) threshold_;
        }
        return 0F;
      }
      /**
       * float score_threshold = 5;
       * @param value The scoreThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setScoreThreshold(float value) {

        thresholdCase_ = 5;
        threshold_ = value;
        onChanged();
        return this;
      }
      /**
       * float score_threshold = 5;
       * @return This builder for chaining.
       */
      public Builder clearScoreThreshold() {
        if (thresholdCase_ == 5) {
          thresholdCase_ = 0;
          threshold_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._NoScoreThreshold, vectorindex.Vectorindex._NoScoreThreshold.Builder, vectorindex.Vectorindex._NoScoreThresholdOrBuilder> noScoreThresholdBuilder_;
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       * @return Whether the noScoreThreshold field is set.
       */
      @java.lang.Override
      public boolean hasNoScoreThreshold() {
        return thresholdCase_ == 6;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       * @return The noScoreThreshold.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThreshold getNoScoreThreshold() {
        if (noScoreThresholdBuilder_ == null) {
          if (thresholdCase_ == 6) {
            return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
          }
          return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
        } else {
          if (thresholdCase_ == 6) {
            return noScoreThresholdBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder setNoScoreThreshold(vectorindex.Vectorindex._NoScoreThreshold value) {
        if (noScoreThresholdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          threshold_ = value;
          onChanged();
        } else {
          noScoreThresholdBuilder_.setMessage(value);
        }
        thresholdCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder setNoScoreThreshold(
          vectorindex.Vectorindex._NoScoreThreshold.Builder builderForValue) {
        if (noScoreThresholdBuilder_ == null) {
          threshold_ = builderForValue.build();
          onChanged();
        } else {
          noScoreThresholdBuilder_.setMessage(builderForValue.build());
        }
        thresholdCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder mergeNoScoreThreshold(vectorindex.Vectorindex._NoScoreThreshold value) {
        if (noScoreThresholdBuilder_ == null) {
          if (thresholdCase_ == 6 &&
              threshold_ != vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance()) {
            threshold_ = vectorindex.Vectorindex._NoScoreThreshold.newBuilder((vectorindex.Vectorindex._NoScoreThreshold) threshold_)
                .mergeFrom(value).buildPartial();
          } else {
            threshold_ = value;
          }
          onChanged();
        } else {
          if (thresholdCase_ == 6) {
            noScoreThresholdBuilder_.mergeFrom(value);
          } else {
            noScoreThresholdBuilder_.setMessage(value);
          }
        }
        thresholdCase_ = 6;
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public Builder clearNoScoreThreshold() {
        if (noScoreThresholdBuilder_ == null) {
          if (thresholdCase_ == 6) {
            thresholdCase_ = 0;
            threshold_ = null;
            onChanged();
          }
        } else {
          if (thresholdCase_ == 6) {
            thresholdCase_ = 0;
            threshold_ = null;
          }
          noScoreThresholdBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      public vectorindex.Vectorindex._NoScoreThreshold.Builder getNoScoreThresholdBuilder() {
        return getNoScoreThresholdFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._NoScoreThresholdOrBuilder getNoScoreThresholdOrBuilder() {
        if ((thresholdCase_ == 6) && (noScoreThresholdBuilder_ != null)) {
          return noScoreThresholdBuilder_.getMessageOrBuilder();
        } else {
          if (thresholdCase_ == 6) {
            return (vectorindex.Vectorindex._NoScoreThreshold) threshold_;
          }
          return vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._NoScoreThreshold no_score_threshold = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._NoScoreThreshold, vectorindex.Vectorindex._NoScoreThreshold.Builder, vectorindex.Vectorindex._NoScoreThresholdOrBuilder> 
          getNoScoreThresholdFieldBuilder() {
        if (noScoreThresholdBuilder_ == null) {
          if (!(thresholdCase_ == 6)) {
            threshold_ = vectorindex.Vectorindex._NoScoreThreshold.getDefaultInstance();
          }
          noScoreThresholdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._NoScoreThreshold, vectorindex.Vectorindex._NoScoreThreshold.Builder, vectorindex.Vectorindex._NoScoreThresholdOrBuilder>(
                  (vectorindex.Vectorindex._NoScoreThreshold) threshold_,
                  getParentForChildren(),
                  isClean());
          threshold_ = null;
        }
        thresholdCase_ = 6;
        onChanged();
        return noScoreThresholdBuilder_;
      }

      private vectorindex.Vectorindex._FilterExpression filterExpression_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> filterExpressionBuilder_;
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       * @return Whether the filterExpression field is set.
       */
      public boolean hasFilterExpression() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       * @return The filterExpression.
       */
      public vectorindex.Vectorindex._FilterExpression getFilterExpression() {
        if (filterExpressionBuilder_ == null) {
          return filterExpression_ == null ? vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
        } else {
          return filterExpressionBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder setFilterExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (filterExpressionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          filterExpression_ = value;
        } else {
          filterExpressionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder setFilterExpression(
          vectorindex.Vectorindex._FilterExpression.Builder builderForValue) {
        if (filterExpressionBuilder_ == null) {
          filterExpression_ = builderForValue.build();
        } else {
          filterExpressionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder mergeFilterExpression(vectorindex.Vectorindex._FilterExpression value) {
        if (filterExpressionBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            filterExpression_ != null &&
            filterExpression_ != vectorindex.Vectorindex._FilterExpression.getDefaultInstance()) {
            getFilterExpressionBuilder().mergeFrom(value);
          } else {
            filterExpression_ = value;
          }
        } else {
          filterExpressionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public Builder clearFilterExpression() {
        bitField0_ = (bitField0_ & ~0x00000040);
        filterExpression_ = null;
        if (filterExpressionBuilder_ != null) {
          filterExpressionBuilder_.dispose();
          filterExpressionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public vectorindex.Vectorindex._FilterExpression.Builder getFilterExpressionBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getFilterExpressionFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      public vectorindex.Vectorindex._FilterExpressionOrBuilder getFilterExpressionOrBuilder() {
        if (filterExpressionBuilder_ != null) {
          return filterExpressionBuilder_.getMessageOrBuilder();
        } else {
          return filterExpression_ == null ?
              vectorindex.Vectorindex._FilterExpression.getDefaultInstance() : filterExpression_;
        }
      }
      /**
       * .vectorindex._FilterExpression filter_expression = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder> 
          getFilterExpressionFieldBuilder() {
        if (filterExpressionBuilder_ == null) {
          filterExpressionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._FilterExpression, vectorindex.Vectorindex._FilterExpression.Builder, vectorindex.Vectorindex._FilterExpressionOrBuilder>(
                  getFilterExpression(),
                  getParentForChildren(),
                  isClean());
          filterExpression_ = null;
        }
        return filterExpressionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._SearchAndFetchVectorsRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._SearchAndFetchVectorsRequest)
    private static final vectorindex.Vectorindex._SearchAndFetchVectorsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._SearchAndFetchVectorsRequest();
    }

    public static vectorindex.Vectorindex._SearchAndFetchVectorsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_SearchAndFetchVectorsRequest>
        PARSER = new com.google.protobuf.AbstractParser<_SearchAndFetchVectorsRequest>() {
      @java.lang.Override
      public _SearchAndFetchVectorsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_SearchAndFetchVectorsRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_SearchAndFetchVectorsRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._SearchAndFetchVectorsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _SearchHitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._SearchHit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * float score = 2;
     * @return The score.
     */
    float getScore();

    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    java.util.List 
        getMetadataList();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    vectorindex.Vectorindex._Metadata getMetadata(int index);
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    int getMetadataCount();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    java.util.List 
        getMetadataOrBuilderList();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._SearchHit}
   */
  public static final class _SearchHit extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._SearchHit)
      _SearchHitOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _SearchHit.newBuilder() to construct.
    private _SearchHit(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _SearchHit() {
      id_ = "";
      metadata_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _SearchHit();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchHit_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchHit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._SearchHit.class, vectorindex.Vectorindex._SearchHit.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object id_ = "";
    /**
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCORE_FIELD_NUMBER = 2;
    private float score_ = 0F;
    /**
     * float score = 2;
     * @return The score.
     */
    @java.lang.Override
    public float getScore() {
      return score_;
    }

    public static final int METADATA_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List metadata_;
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public java.util.List getMetadataList() {
      return metadata_;
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public java.util.List 
        getMetadataOrBuilderList() {
      return metadata_;
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public int getMetadataCount() {
      return metadata_.size();
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Metadata getMetadata(int index) {
      return metadata_.get(index);
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
        int index) {
      return metadata_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (java.lang.Float.floatToRawIntBits(score_) != 0) {
        output.writeFloat(2, score_);
      }
      for (int i = 0; i < metadata_.size(); i++) {
        output.writeMessage(3, metadata_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (java.lang.Float.floatToRawIntBits(score_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, score_);
      }
      for (int i = 0; i < metadata_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, metadata_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._SearchHit)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._SearchHit other = (vectorindex.Vectorindex._SearchHit) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (java.lang.Float.floatToIntBits(getScore())
          != java.lang.Float.floatToIntBits(
              other.getScore())) return false;
      if (!getMetadataList()
          .equals(other.getMetadataList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + SCORE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getScore());
      if (getMetadataCount() > 0) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._SearchHit parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchHit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchHit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchHit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._SearchHit prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._SearchHit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._SearchHit)
        vectorindex.Vectorindex._SearchHitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchHit_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchHit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._SearchHit.class, vectorindex.Vectorindex._SearchHit.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._SearchHit.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = "";
        score_ = 0F;
        if (metadataBuilder_ == null) {
          metadata_ = java.util.Collections.emptyList();
        } else {
          metadata_ = null;
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchHit_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchHit getDefaultInstanceForType() {
        return vectorindex.Vectorindex._SearchHit.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchHit build() {
        vectorindex.Vectorindex._SearchHit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchHit buildPartial() {
        vectorindex.Vectorindex._SearchHit result = new vectorindex.Vectorindex._SearchHit(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._SearchHit result) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            metadata_ = java.util.Collections.unmodifiableList(metadata_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._SearchHit result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.score_ = score_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._SearchHit) {
          return mergeFrom((vectorindex.Vectorindex._SearchHit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._SearchHit other) {
        if (other == vectorindex.Vectorindex._SearchHit.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getScore() != 0F) {
          setScore(other.getScore());
        }
        if (metadataBuilder_ == null) {
          if (!other.metadata_.isEmpty()) {
            if (metadata_.isEmpty()) {
              metadata_ = other.metadata_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureMetadataIsMutable();
              metadata_.addAll(other.metadata_);
            }
            onChanged();
          }
        } else {
          if (!other.metadata_.isEmpty()) {
            if (metadataBuilder_.isEmpty()) {
              metadataBuilder_.dispose();
              metadataBuilder_ = null;
              metadata_ = other.metadata_;
              bitField0_ = (bitField0_ & ~0x00000004);
              metadataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMetadataFieldBuilder() : null;
            } else {
              metadataBuilder_.addAllMessages(other.metadata_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 21: {
                score_ = input.readFloat();
                bitField0_ |= 0x00000002;
                break;
              } // case 21
              case 26: {
                vectorindex.Vectorindex._Metadata m =
                    input.readMessage(
                        vectorindex.Vectorindex._Metadata.parser(),
                        extensionRegistry);
                if (metadataBuilder_ == null) {
                  ensureMetadataIsMutable();
                  metadata_.add(m);
                } else {
                  metadataBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        id_ = getDefaultInstance().getId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private float score_ ;
      /**
       * float score = 2;
       * @return The score.
       */
      @java.lang.Override
      public float getScore() {
        return score_;
      }
      /**
       * float score = 2;
       * @param value The score to set.
       * @return This builder for chaining.
       */
      public Builder setScore(float value) {

        score_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * float score = 2;
       * @return This builder for chaining.
       */
      public Builder clearScore() {
        bitField0_ = (bitField0_ & ~0x00000002);
        score_ = 0F;
        onChanged();
        return this;
      }

      private java.util.List metadata_ =
        java.util.Collections.emptyList();
      private void ensureMetadataIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          metadata_ = new java.util.ArrayList(metadata_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> metadataBuilder_;

      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List getMetadataList() {
        if (metadataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metadata_);
        } else {
          return metadataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public int getMetadataCount() {
        if (metadataBuilder_ == null) {
          return metadata_.size();
        } else {
          return metadataBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata getMetadata(int index) {
        if (metadataBuilder_ == null) {
          return metadata_.get(index);
        } else {
          return metadataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder setMetadata(
          int index, vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.set(index, value);
          onChanged();
        } else {
          metadataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder setMetadata(
          int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.set(index, builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.add(value);
          onChanged();
        } else {
          metadataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          int index, vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.add(index, value);
          onChanged();
        } else {
          metadataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.add(builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.add(index, builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addAllMetadata(
          java.lang.Iterable values) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, metadata_);
          onChanged();
        } else {
          metadataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder removeMetadata(int index) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.remove(index);
          onChanged();
        } else {
          metadataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder getMetadataBuilder(
          int index) {
        return getMetadataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index) {
        if (metadataBuilder_ == null) {
          return metadata_.get(index);  } else {
          return metadataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List 
           getMetadataOrBuilderList() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metadata_);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder() {
        return getMetadataFieldBuilder().addBuilder(
            vectorindex.Vectorindex._Metadata.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder(
          int index) {
        return getMetadataFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._Metadata.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List 
           getMetadataBuilderList() {
        return getMetadataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> 
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder>(
                  metadata_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._SearchHit)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._SearchHit)
    private static final vectorindex.Vectorindex._SearchHit DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._SearchHit();
    }

    public static vectorindex.Vectorindex._SearchHit getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_SearchHit>
        PARSER = new com.google.protobuf.AbstractParser<_SearchHit>() {
      @java.lang.Override
      public _SearchHit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_SearchHit> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_SearchHit> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._SearchHit getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _SearchAndFetchVectorsHitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._SearchAndFetchVectorsHit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * float score = 2;
     * @return The score.
     */
    float getScore();

    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    java.util.List 
        getMetadataList();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    vectorindex.Vectorindex._Metadata getMetadata(int index);
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    int getMetadataCount();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    java.util.List 
        getMetadataOrBuilderList();
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
        int index);

    /**
     * .vectorindex._Vector vector = 4;
     * @return Whether the vector field is set.
     */
    boolean hasVector();
    /**
     * .vectorindex._Vector vector = 4;
     * @return The vector.
     */
    vectorindex.Vectorindex._Vector getVector();
    /**
     * .vectorindex._Vector vector = 4;
     */
    vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder();
  }
  /**
   * Protobuf type {@code vectorindex._SearchAndFetchVectorsHit}
   */
  public static final class _SearchAndFetchVectorsHit extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._SearchAndFetchVectorsHit)
      _SearchAndFetchVectorsHitOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _SearchAndFetchVectorsHit.newBuilder() to construct.
    private _SearchAndFetchVectorsHit(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _SearchAndFetchVectorsHit() {
      id_ = "";
      metadata_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _SearchAndFetchVectorsHit();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsHit_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsHit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._SearchAndFetchVectorsHit.class, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object id_ = "";
    /**
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCORE_FIELD_NUMBER = 2;
    private float score_ = 0F;
    /**
     * float score = 2;
     * @return The score.
     */
    @java.lang.Override
    public float getScore() {
      return score_;
    }

    public static final int METADATA_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List metadata_;
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public java.util.List getMetadataList() {
      return metadata_;
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public java.util.List 
        getMetadataOrBuilderList() {
      return metadata_;
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public int getMetadataCount() {
      return metadata_.size();
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Metadata getMetadata(int index) {
      return metadata_.get(index);
    }
    /**
     * repeated .vectorindex._Metadata metadata = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
        int index) {
      return metadata_.get(index);
    }

    public static final int VECTOR_FIELD_NUMBER = 4;
    private vectorindex.Vectorindex._Vector vector_;
    /**
     * .vectorindex._Vector vector = 4;
     * @return Whether the vector field is set.
     */
    @java.lang.Override
    public boolean hasVector() {
      return vector_ != null;
    }
    /**
     * .vectorindex._Vector vector = 4;
     * @return The vector.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._Vector getVector() {
      return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
    }
    /**
     * .vectorindex._Vector vector = 4;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder() {
      return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (java.lang.Float.floatToRawIntBits(score_) != 0) {
        output.writeFloat(2, score_);
      }
      for (int i = 0; i < metadata_.size(); i++) {
        output.writeMessage(3, metadata_.get(i));
      }
      if (vector_ != null) {
        output.writeMessage(4, getVector());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (java.lang.Float.floatToRawIntBits(score_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, score_);
      }
      for (int i = 0; i < metadata_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, metadata_.get(i));
      }
      if (vector_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getVector());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._SearchAndFetchVectorsHit)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._SearchAndFetchVectorsHit other = (vectorindex.Vectorindex._SearchAndFetchVectorsHit) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (java.lang.Float.floatToIntBits(getScore())
          != java.lang.Float.floatToIntBits(
              other.getScore())) return false;
      if (!getMetadataList()
          .equals(other.getMetadataList())) return false;
      if (hasVector() != other.hasVector()) return false;
      if (hasVector()) {
        if (!getVector()
            .equals(other.getVector())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + SCORE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getScore());
      if (getMetadataCount() > 0) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataList().hashCode();
      }
      if (hasVector()) {
        hash = (37 * hash) + VECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getVector().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._SearchAndFetchVectorsHit prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._SearchAndFetchVectorsHit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._SearchAndFetchVectorsHit)
        vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsHit_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsHit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._SearchAndFetchVectorsHit.class, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._SearchAndFetchVectorsHit.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = "";
        score_ = 0F;
        if (metadataBuilder_ == null) {
          metadata_ = java.util.Collections.emptyList();
        } else {
          metadata_ = null;
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        vector_ = null;
        if (vectorBuilder_ != null) {
          vectorBuilder_.dispose();
          vectorBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsHit_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit getDefaultInstanceForType() {
        return vectorindex.Vectorindex._SearchAndFetchVectorsHit.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit build() {
        vectorindex.Vectorindex._SearchAndFetchVectorsHit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit buildPartial() {
        vectorindex.Vectorindex._SearchAndFetchVectorsHit result = new vectorindex.Vectorindex._SearchAndFetchVectorsHit(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._SearchAndFetchVectorsHit result) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            metadata_ = java.util.Collections.unmodifiableList(metadata_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._SearchAndFetchVectorsHit result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.score_ = score_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.vector_ = vectorBuilder_ == null
              ? vector_
              : vectorBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._SearchAndFetchVectorsHit) {
          return mergeFrom((vectorindex.Vectorindex._SearchAndFetchVectorsHit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._SearchAndFetchVectorsHit other) {
        if (other == vectorindex.Vectorindex._SearchAndFetchVectorsHit.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getScore() != 0F) {
          setScore(other.getScore());
        }
        if (metadataBuilder_ == null) {
          if (!other.metadata_.isEmpty()) {
            if (metadata_.isEmpty()) {
              metadata_ = other.metadata_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureMetadataIsMutable();
              metadata_.addAll(other.metadata_);
            }
            onChanged();
          }
        } else {
          if (!other.metadata_.isEmpty()) {
            if (metadataBuilder_.isEmpty()) {
              metadataBuilder_.dispose();
              metadataBuilder_ = null;
              metadata_ = other.metadata_;
              bitField0_ = (bitField0_ & ~0x00000004);
              metadataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMetadataFieldBuilder() : null;
            } else {
              metadataBuilder_.addAllMessages(other.metadata_);
            }
          }
        }
        if (other.hasVector()) {
          mergeVector(other.getVector());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 21: {
                score_ = input.readFloat();
                bitField0_ |= 0x00000002;
                break;
              } // case 21
              case 26: {
                vectorindex.Vectorindex._Metadata m =
                    input.readMessage(
                        vectorindex.Vectorindex._Metadata.parser(),
                        extensionRegistry);
                if (metadataBuilder_ == null) {
                  ensureMetadataIsMutable();
                  metadata_.add(m);
                } else {
                  metadataBuilder_.addMessage(m);
                }
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getVectorFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        id_ = getDefaultInstance().getId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private float score_ ;
      /**
       * float score = 2;
       * @return The score.
       */
      @java.lang.Override
      public float getScore() {
        return score_;
      }
      /**
       * float score = 2;
       * @param value The score to set.
       * @return This builder for chaining.
       */
      public Builder setScore(float value) {

        score_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * float score = 2;
       * @return This builder for chaining.
       */
      public Builder clearScore() {
        bitField0_ = (bitField0_ & ~0x00000002);
        score_ = 0F;
        onChanged();
        return this;
      }

      private java.util.List metadata_ =
        java.util.Collections.emptyList();
      private void ensureMetadataIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          metadata_ = new java.util.ArrayList(metadata_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> metadataBuilder_;

      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List getMetadataList() {
        if (metadataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(metadata_);
        } else {
          return metadataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public int getMetadataCount() {
        if (metadataBuilder_ == null) {
          return metadata_.size();
        } else {
          return metadataBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata getMetadata(int index) {
        if (metadataBuilder_ == null) {
          return metadata_.get(index);
        } else {
          return metadataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder setMetadata(
          int index, vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.set(index, value);
          onChanged();
        } else {
          metadataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder setMetadata(
          int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.set(index, builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.add(value);
          onChanged();
        } else {
          metadataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          int index, vectorindex.Vectorindex._Metadata value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMetadataIsMutable();
          metadata_.add(index, value);
          onChanged();
        } else {
          metadataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.add(builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addMetadata(
          int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.add(index, builderForValue.build());
          onChanged();
        } else {
          metadataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder addAllMetadata(
          java.lang.Iterable values) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, metadata_);
          onChanged();
        } else {
          metadataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public Builder removeMetadata(int index) {
        if (metadataBuilder_ == null) {
          ensureMetadataIsMutable();
          metadata_.remove(index);
          onChanged();
        } else {
          metadataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder getMetadataBuilder(
          int index) {
        return getMetadataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index) {
        if (metadataBuilder_ == null) {
          return metadata_.get(index);  } else {
          return metadataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List 
           getMetadataOrBuilderList() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(metadata_);
        }
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder() {
        return getMetadataFieldBuilder().addBuilder(
            vectorindex.Vectorindex._Metadata.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder(
          int index) {
        return getMetadataFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._Metadata.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      public java.util.List 
           getMetadataBuilderList() {
        return getMetadataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> 
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder>(
                  metadata_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private vectorindex.Vectorindex._Vector vector_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> vectorBuilder_;
      /**
       * .vectorindex._Vector vector = 4;
       * @return Whether the vector field is set.
       */
      public boolean hasVector() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .vectorindex._Vector vector = 4;
       * @return The vector.
       */
      public vectorindex.Vectorindex._Vector getVector() {
        if (vectorBuilder_ == null) {
          return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
        } else {
          return vectorBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      public Builder setVector(vectorindex.Vectorindex._Vector value) {
        if (vectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vector_ = value;
        } else {
          vectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      public Builder setVector(
          vectorindex.Vectorindex._Vector.Builder builderForValue) {
        if (vectorBuilder_ == null) {
          vector_ = builderForValue.build();
        } else {
          vectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      public Builder mergeVector(vectorindex.Vectorindex._Vector value) {
        if (vectorBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            vector_ != null &&
            vector_ != vectorindex.Vectorindex._Vector.getDefaultInstance()) {
            getVectorBuilder().mergeFrom(value);
          } else {
            vector_ = value;
          }
        } else {
          vectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      public Builder clearVector() {
        bitField0_ = (bitField0_ & ~0x00000008);
        vector_ = null;
        if (vectorBuilder_ != null) {
          vectorBuilder_.dispose();
          vectorBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      public vectorindex.Vectorindex._Vector.Builder getVectorBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getVectorFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      public vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder() {
        if (vectorBuilder_ != null) {
          return vectorBuilder_.getMessageOrBuilder();
        } else {
          return vector_ == null ?
              vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
        }
      }
      /**
       * .vectorindex._Vector vector = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> 
          getVectorFieldBuilder() {
        if (vectorBuilder_ == null) {
          vectorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder>(
                  getVector(),
                  getParentForChildren(),
                  isClean());
          vector_ = null;
        }
        return vectorBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._SearchAndFetchVectorsHit)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._SearchAndFetchVectorsHit)
    private static final vectorindex.Vectorindex._SearchAndFetchVectorsHit DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._SearchAndFetchVectorsHit();
    }

    public static vectorindex.Vectorindex._SearchAndFetchVectorsHit getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_SearchAndFetchVectorsHit>
        PARSER = new com.google.protobuf.AbstractParser<_SearchAndFetchVectorsHit>() {
      @java.lang.Override
      public _SearchAndFetchVectorsHit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_SearchAndFetchVectorsHit> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_SearchAndFetchVectorsHit> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._SearchAndFetchVectorsHit getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _SearchResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._SearchResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    java.util.List 
        getHitsList();
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    vectorindex.Vectorindex._SearchHit getHits(int index);
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    int getHitsCount();
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    java.util.List 
        getHitsOrBuilderList();
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    vectorindex.Vectorindex._SearchHitOrBuilder getHitsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._SearchResponse}
   */
  public static final class _SearchResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._SearchResponse)
      _SearchResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _SearchResponse.newBuilder() to construct.
    private _SearchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _SearchResponse() {
      hits_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _SearchResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._SearchResponse.class, vectorindex.Vectorindex._SearchResponse.Builder.class);
    }

    public static final int HITS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List hits_;
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    @java.lang.Override
    public java.util.List getHitsList() {
      return hits_;
    }
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    @java.lang.Override
    public java.util.List 
        getHitsOrBuilderList() {
      return hits_;
    }
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    @java.lang.Override
    public int getHitsCount() {
      return hits_.size();
    }
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._SearchHit getHits(int index) {
      return hits_.get(index);
    }
    /**
     * repeated .vectorindex._SearchHit hits = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._SearchHitOrBuilder getHitsOrBuilder(
        int index) {
      return hits_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < hits_.size(); i++) {
        output.writeMessage(1, hits_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < hits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, hits_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._SearchResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._SearchResponse other = (vectorindex.Vectorindex._SearchResponse) obj;

      if (!getHitsList()
          .equals(other.getHitsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getHitsCount() > 0) {
        hash = (37 * hash) + HITS_FIELD_NUMBER;
        hash = (53 * hash) + getHitsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._SearchResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._SearchResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._SearchResponse)
        vectorindex.Vectorindex._SearchResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._SearchResponse.class, vectorindex.Vectorindex._SearchResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._SearchResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (hitsBuilder_ == null) {
          hits_ = java.util.Collections.emptyList();
        } else {
          hits_ = null;
          hitsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._SearchResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchResponse build() {
        vectorindex.Vectorindex._SearchResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchResponse buildPartial() {
        vectorindex.Vectorindex._SearchResponse result = new vectorindex.Vectorindex._SearchResponse(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._SearchResponse result) {
        if (hitsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            hits_ = java.util.Collections.unmodifiableList(hits_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.hits_ = hits_;
        } else {
          result.hits_ = hitsBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._SearchResponse result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._SearchResponse) {
          return mergeFrom((vectorindex.Vectorindex._SearchResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._SearchResponse other) {
        if (other == vectorindex.Vectorindex._SearchResponse.getDefaultInstance()) return this;
        if (hitsBuilder_ == null) {
          if (!other.hits_.isEmpty()) {
            if (hits_.isEmpty()) {
              hits_ = other.hits_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHitsIsMutable();
              hits_.addAll(other.hits_);
            }
            onChanged();
          }
        } else {
          if (!other.hits_.isEmpty()) {
            if (hitsBuilder_.isEmpty()) {
              hitsBuilder_.dispose();
              hitsBuilder_ = null;
              hits_ = other.hits_;
              bitField0_ = (bitField0_ & ~0x00000001);
              hitsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHitsFieldBuilder() : null;
            } else {
              hitsBuilder_.addAllMessages(other.hits_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                vectorindex.Vectorindex._SearchHit m =
                    input.readMessage(
                        vectorindex.Vectorindex._SearchHit.parser(),
                        extensionRegistry);
                if (hitsBuilder_ == null) {
                  ensureHitsIsMutable();
                  hits_.add(m);
                } else {
                  hitsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List hits_ =
        java.util.Collections.emptyList();
      private void ensureHitsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          hits_ = new java.util.ArrayList(hits_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._SearchHit, vectorindex.Vectorindex._SearchHit.Builder, vectorindex.Vectorindex._SearchHitOrBuilder> hitsBuilder_;

      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public java.util.List getHitsList() {
        if (hitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hits_);
        } else {
          return hitsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public int getHitsCount() {
        if (hitsBuilder_ == null) {
          return hits_.size();
        } else {
          return hitsBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchHit getHits(int index) {
        if (hitsBuilder_ == null) {
          return hits_.get(index);
        } else {
          return hitsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder setHits(
          int index, vectorindex.Vectorindex._SearchHit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.set(index, value);
          onChanged();
        } else {
          hitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder setHits(
          int index, vectorindex.Vectorindex._SearchHit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.set(index, builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder addHits(vectorindex.Vectorindex._SearchHit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.add(value);
          onChanged();
        } else {
          hitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder addHits(
          int index, vectorindex.Vectorindex._SearchHit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.add(index, value);
          onChanged();
        } else {
          hitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder addHits(
          vectorindex.Vectorindex._SearchHit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.add(builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder addHits(
          int index, vectorindex.Vectorindex._SearchHit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.add(index, builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder addAllHits(
          java.lang.Iterable values) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, hits_);
          onChanged();
        } else {
          hitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder clearHits() {
        if (hitsBuilder_ == null) {
          hits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          hitsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public Builder removeHits(int index) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.remove(index);
          onChanged();
        } else {
          hitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchHit.Builder getHitsBuilder(
          int index) {
        return getHitsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchHitOrBuilder getHitsOrBuilder(
          int index) {
        if (hitsBuilder_ == null) {
          return hits_.get(index);  } else {
          return hitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public java.util.List 
           getHitsOrBuilderList() {
        if (hitsBuilder_ != null) {
          return hitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hits_);
        }
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchHit.Builder addHitsBuilder() {
        return getHitsFieldBuilder().addBuilder(
            vectorindex.Vectorindex._SearchHit.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchHit.Builder addHitsBuilder(
          int index) {
        return getHitsFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._SearchHit.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._SearchHit hits = 1;
       */
      public java.util.List 
           getHitsBuilderList() {
        return getHitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._SearchHit, vectorindex.Vectorindex._SearchHit.Builder, vectorindex.Vectorindex._SearchHitOrBuilder> 
          getHitsFieldBuilder() {
        if (hitsBuilder_ == null) {
          hitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._SearchHit, vectorindex.Vectorindex._SearchHit.Builder, vectorindex.Vectorindex._SearchHitOrBuilder>(
                  hits_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          hits_ = null;
        }
        return hitsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._SearchResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._SearchResponse)
    private static final vectorindex.Vectorindex._SearchResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._SearchResponse();
    }

    public static vectorindex.Vectorindex._SearchResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_SearchResponse>
        PARSER = new com.google.protobuf.AbstractParser<_SearchResponse>() {
      @java.lang.Override
      public _SearchResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_SearchResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_SearchResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._SearchResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _SearchAndFetchVectorsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._SearchAndFetchVectorsResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    java.util.List 
        getHitsList();
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    vectorindex.Vectorindex._SearchAndFetchVectorsHit getHits(int index);
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    int getHitsCount();
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    java.util.List 
        getHitsOrBuilderList();
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder getHitsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._SearchAndFetchVectorsResponse}
   */
  public static final class _SearchAndFetchVectorsResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._SearchAndFetchVectorsResponse)
      _SearchAndFetchVectorsResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _SearchAndFetchVectorsResponse.newBuilder() to construct.
    private _SearchAndFetchVectorsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _SearchAndFetchVectorsResponse() {
      hits_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _SearchAndFetchVectorsResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._SearchAndFetchVectorsResponse.class, vectorindex.Vectorindex._SearchAndFetchVectorsResponse.Builder.class);
    }

    public static final int HITS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List hits_;
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    @java.lang.Override
    public java.util.List getHitsList() {
      return hits_;
    }
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    @java.lang.Override
    public java.util.List 
        getHitsOrBuilderList() {
      return hits_;
    }
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    @java.lang.Override
    public int getHitsCount() {
      return hits_.size();
    }
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._SearchAndFetchVectorsHit getHits(int index) {
      return hits_.get(index);
    }
    /**
     * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder getHitsOrBuilder(
        int index) {
      return hits_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < hits_.size(); i++) {
        output.writeMessage(1, hits_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < hits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, hits_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._SearchAndFetchVectorsResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._SearchAndFetchVectorsResponse other = (vectorindex.Vectorindex._SearchAndFetchVectorsResponse) obj;

      if (!getHitsList()
          .equals(other.getHitsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getHitsCount() > 0) {
        hash = (37 * hash) + HITS_FIELD_NUMBER;
        hash = (53 * hash) + getHitsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._SearchAndFetchVectorsResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._SearchAndFetchVectorsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._SearchAndFetchVectorsResponse)
        vectorindex.Vectorindex._SearchAndFetchVectorsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._SearchAndFetchVectorsResponse.class, vectorindex.Vectorindex._SearchAndFetchVectorsResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._SearchAndFetchVectorsResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (hitsBuilder_ == null) {
          hits_ = java.util.Collections.emptyList();
        } else {
          hits_ = null;
          hitsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__SearchAndFetchVectorsResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._SearchAndFetchVectorsResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsResponse build() {
        vectorindex.Vectorindex._SearchAndFetchVectorsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._SearchAndFetchVectorsResponse buildPartial() {
        vectorindex.Vectorindex._SearchAndFetchVectorsResponse result = new vectorindex.Vectorindex._SearchAndFetchVectorsResponse(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._SearchAndFetchVectorsResponse result) {
        if (hitsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            hits_ = java.util.Collections.unmodifiableList(hits_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.hits_ = hits_;
        } else {
          result.hits_ = hitsBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._SearchAndFetchVectorsResponse result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._SearchAndFetchVectorsResponse) {
          return mergeFrom((vectorindex.Vectorindex._SearchAndFetchVectorsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._SearchAndFetchVectorsResponse other) {
        if (other == vectorindex.Vectorindex._SearchAndFetchVectorsResponse.getDefaultInstance()) return this;
        if (hitsBuilder_ == null) {
          if (!other.hits_.isEmpty()) {
            if (hits_.isEmpty()) {
              hits_ = other.hits_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHitsIsMutable();
              hits_.addAll(other.hits_);
            }
            onChanged();
          }
        } else {
          if (!other.hits_.isEmpty()) {
            if (hitsBuilder_.isEmpty()) {
              hitsBuilder_.dispose();
              hitsBuilder_ = null;
              hits_ = other.hits_;
              bitField0_ = (bitField0_ & ~0x00000001);
              hitsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHitsFieldBuilder() : null;
            } else {
              hitsBuilder_.addAllMessages(other.hits_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                vectorindex.Vectorindex._SearchAndFetchVectorsHit m =
                    input.readMessage(
                        vectorindex.Vectorindex._SearchAndFetchVectorsHit.parser(),
                        extensionRegistry);
                if (hitsBuilder_ == null) {
                  ensureHitsIsMutable();
                  hits_.add(m);
                } else {
                  hitsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List hits_ =
        java.util.Collections.emptyList();
      private void ensureHitsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          hits_ = new java.util.ArrayList(hits_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._SearchAndFetchVectorsHit, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder, vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder> hitsBuilder_;

      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public java.util.List getHitsList() {
        if (hitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hits_);
        } else {
          return hitsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public int getHitsCount() {
        if (hitsBuilder_ == null) {
          return hits_.size();
        } else {
          return hitsBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit getHits(int index) {
        if (hitsBuilder_ == null) {
          return hits_.get(index);
        } else {
          return hitsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder setHits(
          int index, vectorindex.Vectorindex._SearchAndFetchVectorsHit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.set(index, value);
          onChanged();
        } else {
          hitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder setHits(
          int index, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.set(index, builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder addHits(vectorindex.Vectorindex._SearchAndFetchVectorsHit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.add(value);
          onChanged();
        } else {
          hitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder addHits(
          int index, vectorindex.Vectorindex._SearchAndFetchVectorsHit value) {
        if (hitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHitsIsMutable();
          hits_.add(index, value);
          onChanged();
        } else {
          hitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder addHits(
          vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.add(builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder addHits(
          int index, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder builderForValue) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.add(index, builderForValue.build());
          onChanged();
        } else {
          hitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder addAllHits(
          java.lang.Iterable values) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, hits_);
          onChanged();
        } else {
          hitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder clearHits() {
        if (hitsBuilder_ == null) {
          hits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          hitsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public Builder removeHits(int index) {
        if (hitsBuilder_ == null) {
          ensureHitsIsMutable();
          hits_.remove(index);
          onChanged();
        } else {
          hitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder getHitsBuilder(
          int index) {
        return getHitsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder getHitsOrBuilder(
          int index) {
        if (hitsBuilder_ == null) {
          return hits_.get(index);  } else {
          return hitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public java.util.List 
           getHitsOrBuilderList() {
        if (hitsBuilder_ != null) {
          return hitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hits_);
        }
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder addHitsBuilder() {
        return getHitsFieldBuilder().addBuilder(
            vectorindex.Vectorindex._SearchAndFetchVectorsHit.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder addHitsBuilder(
          int index) {
        return getHitsFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._SearchAndFetchVectorsHit.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._SearchAndFetchVectorsHit hits = 1;
       */
      public java.util.List 
           getHitsBuilderList() {
        return getHitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._SearchAndFetchVectorsHit, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder, vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder> 
          getHitsFieldBuilder() {
        if (hitsBuilder_ == null) {
          hitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._SearchAndFetchVectorsHit, vectorindex.Vectorindex._SearchAndFetchVectorsHit.Builder, vectorindex.Vectorindex._SearchAndFetchVectorsHitOrBuilder>(
                  hits_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          hits_ = null;
        }
        return hitsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._SearchAndFetchVectorsResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._SearchAndFetchVectorsResponse)
    private static final vectorindex.Vectorindex._SearchAndFetchVectorsResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._SearchAndFetchVectorsResponse();
    }

    public static vectorindex.Vectorindex._SearchAndFetchVectorsResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_SearchAndFetchVectorsResponse>
        PARSER = new com.google.protobuf.AbstractParser<_SearchAndFetchVectorsResponse>() {
      @java.lang.Override
      public _SearchAndFetchVectorsResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_SearchAndFetchVectorsResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_SearchAndFetchVectorsResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._SearchAndFetchVectorsResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _GetItemMetadataBatchRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._GetItemMetadataBatchRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * repeated string ids = 2;
     * @return A list containing the ids.
     */
    java.util.List
        getIdsList();
    /**
     * repeated string ids = 2;
     * @return The count of ids.
     */
    int getIdsCount();
    /**
     * repeated string ids = 2;
     * @param index The index of the element to return.
     * @return The ids at the given index.
     */
    java.lang.String getIds(int index);
    /**
     * repeated string ids = 2;
     * @param index The index of the value to return.
     * @return The bytes of the ids at the given index.
     */
    com.google.protobuf.ByteString
        getIdsBytes(int index);

    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return Whether the metadataFields field is set.
     */
    boolean hasMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return The metadataFields.
     */
    vectorindex.Vectorindex._MetadataRequest getMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     */
    vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder();
  }
  /**
   * Protobuf type {@code vectorindex._GetItemMetadataBatchRequest}
   */
  public static final class _GetItemMetadataBatchRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._GetItemMetadataBatchRequest)
      _GetItemMetadataBatchRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _GetItemMetadataBatchRequest.newBuilder() to construct.
    private _GetItemMetadataBatchRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _GetItemMetadataBatchRequest() {
      indexName_ = "";
      ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _GetItemMetadataBatchRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._GetItemMetadataBatchRequest.class, vectorindex.Vectorindex._GetItemMetadataBatchRequest.Builder.class);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IDS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList ids_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string ids = 2;
     * @return A list containing the ids.
     */
    public com.google.protobuf.ProtocolStringList
        getIdsList() {
      return ids_;
    }
    /**
     * repeated string ids = 2;
     * @return The count of ids.
     */
    public int getIdsCount() {
      return ids_.size();
    }
    /**
     * repeated string ids = 2;
     * @param index The index of the element to return.
     * @return The ids at the given index.
     */
    public java.lang.String getIds(int index) {
      return ids_.get(index);
    }
    /**
     * repeated string ids = 2;
     * @param index The index of the value to return.
     * @return The bytes of the ids at the given index.
     */
    public com.google.protobuf.ByteString
        getIdsBytes(int index) {
      return ids_.getByteString(index);
    }

    public static final int METADATA_FIELDS_FIELD_NUMBER = 3;
    private vectorindex.Vectorindex._MetadataRequest metadataFields_;
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return Whether the metadataFields field is set.
     */
    @java.lang.Override
    public boolean hasMetadataFields() {
      return metadataFields_ != null;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return The metadataFields.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      for (int i = 0; i < ids_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ids_.getRaw(i));
      }
      if (metadataFields_ != null) {
        output.writeMessage(3, getMetadataFields());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ids_.size(); i++) {
          dataSize += computeStringSizeNoTag(ids_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getIdsList().size();
      }
      if (metadataFields_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getMetadataFields());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._GetItemMetadataBatchRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._GetItemMetadataBatchRequest other = (vectorindex.Vectorindex._GetItemMetadataBatchRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (!getIdsList()
          .equals(other.getIdsList())) return false;
      if (hasMetadataFields() != other.hasMetadataFields()) return false;
      if (hasMetadataFields()) {
        if (!getMetadataFields()
            .equals(other.getMetadataFields())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      if (getIdsCount() > 0) {
        hash = (37 * hash) + IDS_FIELD_NUMBER;
        hash = (53 * hash) + getIdsList().hashCode();
      }
      if (hasMetadataFields()) {
        hash = (37 * hash) + METADATA_FIELDS_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataFields().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._GetItemMetadataBatchRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._GetItemMetadataBatchRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._GetItemMetadataBatchRequest)
        vectorindex.Vectorindex._GetItemMetadataBatchRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._GetItemMetadataBatchRequest.class, vectorindex.Vectorindex._GetItemMetadataBatchRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._GetItemMetadataBatchRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        ids_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemMetadataBatchRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._GetItemMetadataBatchRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemMetadataBatchRequest build() {
        vectorindex.Vectorindex._GetItemMetadataBatchRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemMetadataBatchRequest buildPartial() {
        vectorindex.Vectorindex._GetItemMetadataBatchRequest result = new vectorindex.Vectorindex._GetItemMetadataBatchRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._GetItemMetadataBatchRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          ids_.makeImmutable();
          result.ids_ = ids_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.metadataFields_ = metadataFieldsBuilder_ == null
              ? metadataFields_
              : metadataFieldsBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._GetItemMetadataBatchRequest) {
          return mergeFrom((vectorindex.Vectorindex._GetItemMetadataBatchRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._GetItemMetadataBatchRequest other) {
        if (other == vectorindex.Vectorindex._GetItemMetadataBatchRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.ids_.isEmpty()) {
          if (ids_.isEmpty()) {
            ids_ = other.ids_;
            bitField0_ |= 0x00000002;
          } else {
            ensureIdsIsMutable();
            ids_.addAll(other.ids_);
          }
          onChanged();
        }
        if (other.hasMetadataFields()) {
          mergeMetadataFields(other.getMetadataFields());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureIdsIsMutable();
                ids_.add(s);
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getMetadataFieldsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureIdsIsMutable() {
        if (!ids_.isModifiable()) {
          ids_ = new com.google.protobuf.LazyStringArrayList(ids_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string ids = 2;
       * @return A list containing the ids.
       */
      public com.google.protobuf.ProtocolStringList
          getIdsList() {
        ids_.makeImmutable();
        return ids_;
      }
      /**
       * repeated string ids = 2;
       * @return The count of ids.
       */
      public int getIdsCount() {
        return ids_.size();
      }
      /**
       * repeated string ids = 2;
       * @param index The index of the element to return.
       * @return The ids at the given index.
       */
      public java.lang.String getIds(int index) {
        return ids_.get(index);
      }
      /**
       * repeated string ids = 2;
       * @param index The index of the value to return.
       * @return The bytes of the ids at the given index.
       */
      public com.google.protobuf.ByteString
          getIdsBytes(int index) {
        return ids_.getByteString(index);
      }
      /**
       * repeated string ids = 2;
       * @param index The index to set the value at.
       * @param value The ids to set.
       * @return This builder for chaining.
       */
      public Builder setIds(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureIdsIsMutable();
        ids_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param value The ids to add.
       * @return This builder for chaining.
       */
      public Builder addIds(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureIdsIsMutable();
        ids_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param values The ids to add.
       * @return This builder for chaining.
       */
      public Builder addAllIds(
          java.lang.Iterable values) {
        ensureIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ids_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @return This builder for chaining.
       */
      public Builder clearIds() {
        ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param value The bytes of the ids to add.
       * @return This builder for chaining.
       */
      public Builder addIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureIdsIsMutable();
        ids_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private vectorindex.Vectorindex._MetadataRequest metadataFields_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> metadataFieldsBuilder_;
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       * @return Whether the metadataFields field is set.
       */
      public boolean hasMetadataFields() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       * @return The metadataFields.
       */
      public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
        if (metadataFieldsBuilder_ == null) {
          return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        } else {
          return metadataFieldsBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder setMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadataFields_ = value;
        } else {
          metadataFieldsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder setMetadataFields(
          vectorindex.Vectorindex._MetadataRequest.Builder builderForValue) {
        if (metadataFieldsBuilder_ == null) {
          metadataFields_ = builderForValue.build();
        } else {
          metadataFieldsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder mergeMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            metadataFields_ != null &&
            metadataFields_ != vectorindex.Vectorindex._MetadataRequest.getDefaultInstance()) {
            getMetadataFieldsBuilder().mergeFrom(value);
          } else {
            metadataFields_ = value;
          }
        } else {
          metadataFieldsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder clearMetadataFields() {
        bitField0_ = (bitField0_ & ~0x00000004);
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public vectorindex.Vectorindex._MetadataRequest.Builder getMetadataFieldsBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getMetadataFieldsFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
        if (metadataFieldsBuilder_ != null) {
          return metadataFieldsBuilder_.getMessageOrBuilder();
        } else {
          return metadataFields_ == null ?
              vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> 
          getMetadataFieldsFieldBuilder() {
        if (metadataFieldsBuilder_ == null) {
          metadataFieldsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder>(
                  getMetadataFields(),
                  getParentForChildren(),
                  isClean());
          metadataFields_ = null;
        }
        return metadataFieldsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._GetItemMetadataBatchRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._GetItemMetadataBatchRequest)
    private static final vectorindex.Vectorindex._GetItemMetadataBatchRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._GetItemMetadataBatchRequest();
    }

    public static vectorindex.Vectorindex._GetItemMetadataBatchRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_GetItemMetadataBatchRequest>
        PARSER = new com.google.protobuf.AbstractParser<_GetItemMetadataBatchRequest>() {
      @java.lang.Override
      public _GetItemMetadataBatchRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_GetItemMetadataBatchRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_GetItemMetadataBatchRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._GetItemMetadataBatchRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _ItemMetadataResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._ItemMetadataResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._ItemMetadataResponse._Miss miss = 1;
     * @return Whether the miss field is set.
     */
    boolean hasMiss();
    /**
     * .vectorindex._ItemMetadataResponse._Miss miss = 1;
     * @return The miss.
     */
    vectorindex.Vectorindex._ItemMetadataResponse._Miss getMiss();
    /**
     * .vectorindex._ItemMetadataResponse._Miss miss = 1;
     */
    vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder getMissOrBuilder();

    /**
     * .vectorindex._ItemMetadataResponse._Hit hit = 2;
     * @return Whether the hit field is set.
     */
    boolean hasHit();
    /**
     * .vectorindex._ItemMetadataResponse._Hit hit = 2;
     * @return The hit.
     */
    vectorindex.Vectorindex._ItemMetadataResponse._Hit getHit();
    /**
     * .vectorindex._ItemMetadataResponse._Hit hit = 2;
     */
    vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder getHitOrBuilder();

    vectorindex.Vectorindex._ItemMetadataResponse.ResponseCase getResponseCase();
  }
  /**
   * Protobuf type {@code vectorindex._ItemMetadataResponse}
   */
  public static final class _ItemMetadataResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._ItemMetadataResponse)
      _ItemMetadataResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _ItemMetadataResponse.newBuilder() to construct.
    private _ItemMetadataResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _ItemMetadataResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _ItemMetadataResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._ItemMetadataResponse.class, vectorindex.Vectorindex._ItemMetadataResponse.Builder.class);
    }

    public interface _MissOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._ItemMetadataResponse._Miss)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code vectorindex._ItemMetadataResponse._Miss}
     */
    public static final class _Miss extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._ItemMetadataResponse._Miss)
        _MissOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use _Miss.newBuilder() to construct.
      private _Miss(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private _Miss() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new _Miss();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Miss_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Miss_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ItemMetadataResponse._Miss.class, vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._ItemMetadataResponse._Miss)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._ItemMetadataResponse._Miss other = (vectorindex.Vectorindex._ItemMetadataResponse._Miss) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._ItemMetadataResponse._Miss prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._ItemMetadataResponse._Miss}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._ItemMetadataResponse._Miss)
          vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Miss_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Miss_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._ItemMetadataResponse._Miss.class, vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._ItemMetadataResponse._Miss.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Miss_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemMetadataResponse._Miss getDefaultInstanceForType() {
          return vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemMetadataResponse._Miss build() {
          vectorindex.Vectorindex._ItemMetadataResponse._Miss result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemMetadataResponse._Miss buildPartial() {
          vectorindex.Vectorindex._ItemMetadataResponse._Miss result = new vectorindex.Vectorindex._ItemMetadataResponse._Miss(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._ItemMetadataResponse._Miss) {
            return mergeFrom((vectorindex.Vectorindex._ItemMetadataResponse._Miss)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._ItemMetadataResponse._Miss other) {
          if (other == vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._ItemMetadataResponse._Miss)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._ItemMetadataResponse._Miss)
      private static final vectorindex.Vectorindex._ItemMetadataResponse._Miss DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._ItemMetadataResponse._Miss();
      }

      public static vectorindex.Vectorindex._ItemMetadataResponse._Miss getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<_Miss>
          PARSER = new com.google.protobuf.AbstractParser<_Miss>() {
        @java.lang.Override
        public _Miss parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<_Miss> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<_Miss> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse._Miss getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface _HitOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._ItemMetadataResponse._Hit)
        com.google.protobuf.MessageOrBuilder {

      /**
       * string id = 1;
       * @return The id.
       */
      java.lang.String getId();
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      com.google.protobuf.ByteString
          getIdBytes();

      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      java.util.List 
          getMetadataList();
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      vectorindex.Vectorindex._Metadata getMetadata(int index);
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      int getMetadataCount();
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      java.util.List 
          getMetadataOrBuilderList();
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code vectorindex._ItemMetadataResponse._Hit}
     */
    public static final class _Hit extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._ItemMetadataResponse._Hit)
        _HitOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use _Hit.newBuilder() to construct.
      private _Hit(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private _Hit() {
        id_ = "";
        metadata_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new _Hit();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Hit_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Hit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ItemMetadataResponse._Hit.class, vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int METADATA_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private java.util.List metadata_;
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      @java.lang.Override
      public java.util.List getMetadataList() {
        return metadata_;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      @java.lang.Override
      public java.util.List 
          getMetadataOrBuilderList() {
        return metadata_;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      @java.lang.Override
      public int getMetadataCount() {
        return metadata_.size();
      }
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._Metadata getMetadata(int index) {
        return metadata_.get(index);
      }
      /**
       * repeated .vectorindex._Metadata metadata = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index) {
        return metadata_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
        }
        for (int i = 0; i < metadata_.size(); i++) {
          output.writeMessage(2, metadata_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
        }
        for (int i = 0; i < metadata_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, metadata_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._ItemMetadataResponse._Hit)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._ItemMetadataResponse._Hit other = (vectorindex.Vectorindex._ItemMetadataResponse._Hit) obj;

        if (!getId()
            .equals(other.getId())) return false;
        if (!getMetadataList()
            .equals(other.getMetadataList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId().hashCode();
        if (getMetadataCount() > 0) {
          hash = (37 * hash) + METADATA_FIELD_NUMBER;
          hash = (53 * hash) + getMetadataList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._ItemMetadataResponse._Hit prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._ItemMetadataResponse._Hit}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._ItemMetadataResponse._Hit)
          vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Hit_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Hit_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._ItemMetadataResponse._Hit.class, vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._ItemMetadataResponse._Hit.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          id_ = "";
          if (metadataBuilder_ == null) {
            metadata_ = java.util.Collections.emptyList();
          } else {
            metadata_ = null;
            metadataBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse__Hit_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemMetadataResponse._Hit getDefaultInstanceForType() {
          return vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemMetadataResponse._Hit build() {
          vectorindex.Vectorindex._ItemMetadataResponse._Hit result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemMetadataResponse._Hit buildPartial() {
          vectorindex.Vectorindex._ItemMetadataResponse._Hit result = new vectorindex.Vectorindex._ItemMetadataResponse._Hit(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(vectorindex.Vectorindex._ItemMetadataResponse._Hit result) {
          if (metadataBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0)) {
              metadata_ = java.util.Collections.unmodifiableList(metadata_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.metadata_ = metadata_;
          } else {
            result.metadata_ = metadataBuilder_.build();
          }
        }

        private void buildPartial0(vectorindex.Vectorindex._ItemMetadataResponse._Hit result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.id_ = id_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._ItemMetadataResponse._Hit) {
            return mergeFrom((vectorindex.Vectorindex._ItemMetadataResponse._Hit)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._ItemMetadataResponse._Hit other) {
          if (other == vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance()) return this;
          if (!other.getId().isEmpty()) {
            id_ = other.id_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (metadataBuilder_ == null) {
            if (!other.metadata_.isEmpty()) {
              if (metadata_.isEmpty()) {
                metadata_ = other.metadata_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureMetadataIsMutable();
                metadata_.addAll(other.metadata_);
              }
              onChanged();
            }
          } else {
            if (!other.metadata_.isEmpty()) {
              if (metadataBuilder_.isEmpty()) {
                metadataBuilder_.dispose();
                metadataBuilder_ = null;
                metadata_ = other.metadata_;
                bitField0_ = (bitField0_ & ~0x00000002);
                metadataBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getMetadataFieldBuilder() : null;
              } else {
                metadataBuilder_.addAllMessages(other.metadata_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  id_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  vectorindex.Vectorindex._Metadata m =
                      input.readMessage(
                          vectorindex.Vectorindex._Metadata.parser(),
                          extensionRegistry);
                  if (metadataBuilder_ == null) {
                    ensureMetadataIsMutable();
                    metadata_.add(m);
                  } else {
                    metadataBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object id_ = "";
        /**
         * string id = 1;
         * @return The id.
         */
        public java.lang.String getId() {
          java.lang.Object ref = id_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            id_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string id = 1;
         * @return The bytes for id.
         */
        public com.google.protobuf.ByteString
            getIdBytes() {
          java.lang.Object ref = id_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            id_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string id = 1;
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * string id = 1;
         * @return This builder for chaining.
         */
        public Builder clearId() {
          id_ = getDefaultInstance().getId();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * string id = 1;
         * @param value The bytes for id to set.
         * @return This builder for chaining.
         */
        public Builder setIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private java.util.List metadata_ =
          java.util.Collections.emptyList();
        private void ensureMetadataIsMutable() {
          if (!((bitField0_ & 0x00000002) != 0)) {
            metadata_ = new java.util.ArrayList(metadata_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> metadataBuilder_;

        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public java.util.List getMetadataList() {
          if (metadataBuilder_ == null) {
            return java.util.Collections.unmodifiableList(metadata_);
          } else {
            return metadataBuilder_.getMessageList();
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public int getMetadataCount() {
          if (metadataBuilder_ == null) {
            return metadata_.size();
          } else {
            return metadataBuilder_.getCount();
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public vectorindex.Vectorindex._Metadata getMetadata(int index) {
          if (metadataBuilder_ == null) {
            return metadata_.get(index);
          } else {
            return metadataBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder setMetadata(
            int index, vectorindex.Vectorindex._Metadata value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureMetadataIsMutable();
            metadata_.set(index, value);
            onChanged();
          } else {
            metadataBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder setMetadata(
            int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.set(index, builderForValue.build());
            onChanged();
          } else {
            metadataBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder addMetadata(vectorindex.Vectorindex._Metadata value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureMetadataIsMutable();
            metadata_.add(value);
            onChanged();
          } else {
            metadataBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder addMetadata(
            int index, vectorindex.Vectorindex._Metadata value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureMetadataIsMutable();
            metadata_.add(index, value);
            onChanged();
          } else {
            metadataBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder addMetadata(
            vectorindex.Vectorindex._Metadata.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.add(builderForValue.build());
            onChanged();
          } else {
            metadataBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder addMetadata(
            int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.add(index, builderForValue.build());
            onChanged();
          } else {
            metadataBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder addAllMetadata(
            java.lang.Iterable values) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, metadata_);
            onChanged();
          } else {
            metadataBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder clearMetadata() {
          if (metadataBuilder_ == null) {
            metadata_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            metadataBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public Builder removeMetadata(int index) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.remove(index);
            onChanged();
          } else {
            metadataBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public vectorindex.Vectorindex._Metadata.Builder getMetadataBuilder(
            int index) {
          return getMetadataFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
            int index) {
          if (metadataBuilder_ == null) {
            return metadata_.get(index);  } else {
            return metadataBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public java.util.List 
             getMetadataOrBuilderList() {
          if (metadataBuilder_ != null) {
            return metadataBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(metadata_);
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder() {
          return getMetadataFieldBuilder().addBuilder(
              vectorindex.Vectorindex._Metadata.getDefaultInstance());
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder(
            int index) {
          return getMetadataFieldBuilder().addBuilder(
              index, vectorindex.Vectorindex._Metadata.getDefaultInstance());
        }
        /**
         * repeated .vectorindex._Metadata metadata = 2;
         */
        public java.util.List 
             getMetadataBuilderList() {
          return getMetadataFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> 
            getMetadataFieldBuilder() {
          if (metadataBuilder_ == null) {
            metadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder>(
                    metadata_,
                    ((bitField0_ & 0x00000002) != 0),
                    getParentForChildren(),
                    isClean());
            metadata_ = null;
          }
          return metadataBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._ItemMetadataResponse._Hit)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._ItemMetadataResponse._Hit)
      private static final vectorindex.Vectorindex._ItemMetadataResponse._Hit DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._ItemMetadataResponse._Hit();
      }

      public static vectorindex.Vectorindex._ItemMetadataResponse._Hit getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<_Hit>
          PARSER = new com.google.protobuf.AbstractParser<_Hit>() {
        @java.lang.Override
        public _Hit parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<_Hit> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<_Hit> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse._Hit getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int responseCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object response_;
    public enum ResponseCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      MISS(1),
      HIT(2),
      RESPONSE_NOT_SET(0);
      private final int value;
      private ResponseCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseCase valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseCase forNumber(int value) {
        switch (value) {
          case 1: return MISS;
          case 2: return HIT;
          case 0: return RESPONSE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ResponseCase
    getResponseCase() {
      return ResponseCase.forNumber(
          responseCase_);
    }

    public static final int MISS_FIELD_NUMBER = 1;
    /**
     * .vectorindex._ItemMetadataResponse._Miss miss = 1;
     * @return Whether the miss field is set.
     */
    @java.lang.Override
    public boolean hasMiss() {
      return responseCase_ == 1;
    }
    /**
     * .vectorindex._ItemMetadataResponse._Miss miss = 1;
     * @return The miss.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponse._Miss getMiss() {
      if (responseCase_ == 1) {
         return (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_;
      }
      return vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
    }
    /**
     * .vectorindex._ItemMetadataResponse._Miss miss = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder getMissOrBuilder() {
      if (responseCase_ == 1) {
         return (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_;
      }
      return vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
    }

    public static final int HIT_FIELD_NUMBER = 2;
    /**
     * .vectorindex._ItemMetadataResponse._Hit hit = 2;
     * @return Whether the hit field is set.
     */
    @java.lang.Override
    public boolean hasHit() {
      return responseCase_ == 2;
    }
    /**
     * .vectorindex._ItemMetadataResponse._Hit hit = 2;
     * @return The hit.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponse._Hit getHit() {
      if (responseCase_ == 2) {
         return (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_;
      }
      return vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
    }
    /**
     * .vectorindex._ItemMetadataResponse._Hit hit = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder getHitOrBuilder() {
      if (responseCase_ == 2) {
         return (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_;
      }
      return vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (responseCase_ == 1) {
        output.writeMessage(1, (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_);
      }
      if (responseCase_ == 2) {
        output.writeMessage(2, (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (responseCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_);
      }
      if (responseCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._ItemMetadataResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._ItemMetadataResponse other = (vectorindex.Vectorindex._ItemMetadataResponse) obj;

      if (!getResponseCase().equals(other.getResponseCase())) return false;
      switch (responseCase_) {
        case 1:
          if (!getMiss()
              .equals(other.getMiss())) return false;
          break;
        case 2:
          if (!getHit()
              .equals(other.getHit())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (responseCase_) {
        case 1:
          hash = (37 * hash) + MISS_FIELD_NUMBER;
          hash = (53 * hash) + getMiss().hashCode();
          break;
        case 2:
          hash = (37 * hash) + HIT_FIELD_NUMBER;
          hash = (53 * hash) + getHit().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ItemMetadataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._ItemMetadataResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._ItemMetadataResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._ItemMetadataResponse)
        vectorindex.Vectorindex._ItemMetadataResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ItemMetadataResponse.class, vectorindex.Vectorindex._ItemMetadataResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._ItemMetadataResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (missBuilder_ != null) {
          missBuilder_.clear();
        }
        if (hitBuilder_ != null) {
          hitBuilder_.clear();
        }
        responseCase_ = 0;
        response_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemMetadataResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._ItemMetadataResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse build() {
        vectorindex.Vectorindex._ItemMetadataResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse buildPartial() {
        vectorindex.Vectorindex._ItemMetadataResponse result = new vectorindex.Vectorindex._ItemMetadataResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._ItemMetadataResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._ItemMetadataResponse result) {
        result.responseCase_ = responseCase_;
        result.response_ = this.response_;
        if (responseCase_ == 1 &&
            missBuilder_ != null) {
          result.response_ = missBuilder_.build();
        }
        if (responseCase_ == 2 &&
            hitBuilder_ != null) {
          result.response_ = hitBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._ItemMetadataResponse) {
          return mergeFrom((vectorindex.Vectorindex._ItemMetadataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._ItemMetadataResponse other) {
        if (other == vectorindex.Vectorindex._ItemMetadataResponse.getDefaultInstance()) return this;
        switch (other.getResponseCase()) {
          case MISS: {
            mergeMiss(other.getMiss());
            break;
          }
          case HIT: {
            mergeHit(other.getHit());
            break;
          }
          case RESPONSE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getMissFieldBuilder().getBuilder(),
                    extensionRegistry);
                responseCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getHitFieldBuilder().getBuilder(),
                    extensionRegistry);
                responseCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int responseCase_ = 0;
      private java.lang.Object response_;
      public ResponseCase
          getResponseCase() {
        return ResponseCase.forNumber(
            responseCase_);
      }

      public Builder clearResponse() {
        responseCase_ = 0;
        response_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemMetadataResponse._Miss, vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder, vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder> missBuilder_;
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       * @return Whether the miss field is set.
       */
      @java.lang.Override
      public boolean hasMiss() {
        return responseCase_ == 1;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       * @return The miss.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse._Miss getMiss() {
        if (missBuilder_ == null) {
          if (responseCase_ == 1) {
            return (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_;
          }
          return vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
        } else {
          if (responseCase_ == 1) {
            return missBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      public Builder setMiss(vectorindex.Vectorindex._ItemMetadataResponse._Miss value) {
        if (missBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          missBuilder_.setMessage(value);
        }
        responseCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      public Builder setMiss(
          vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder builderForValue) {
        if (missBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          missBuilder_.setMessage(builderForValue.build());
        }
        responseCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      public Builder mergeMiss(vectorindex.Vectorindex._ItemMetadataResponse._Miss value) {
        if (missBuilder_ == null) {
          if (responseCase_ == 1 &&
              response_ != vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance()) {
            response_ = vectorindex.Vectorindex._ItemMetadataResponse._Miss.newBuilder((vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_)
                .mergeFrom(value).buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          if (responseCase_ == 1) {
            missBuilder_.mergeFrom(value);
          } else {
            missBuilder_.setMessage(value);
          }
        }
        responseCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      public Builder clearMiss() {
        if (missBuilder_ == null) {
          if (responseCase_ == 1) {
            responseCase_ = 0;
            response_ = null;
            onChanged();
          }
        } else {
          if (responseCase_ == 1) {
            responseCase_ = 0;
            response_ = null;
          }
          missBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      public vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder getMissBuilder() {
        return getMissFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder getMissOrBuilder() {
        if ((responseCase_ == 1) && (missBuilder_ != null)) {
          return missBuilder_.getMessageOrBuilder();
        } else {
          if (responseCase_ == 1) {
            return (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_;
          }
          return vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemMetadataResponse._Miss miss = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemMetadataResponse._Miss, vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder, vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder> 
          getMissFieldBuilder() {
        if (missBuilder_ == null) {
          if (!(responseCase_ == 1)) {
            response_ = vectorindex.Vectorindex._ItemMetadataResponse._Miss.getDefaultInstance();
          }
          missBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._ItemMetadataResponse._Miss, vectorindex.Vectorindex._ItemMetadataResponse._Miss.Builder, vectorindex.Vectorindex._ItemMetadataResponse._MissOrBuilder>(
                  (vectorindex.Vectorindex._ItemMetadataResponse._Miss) response_,
                  getParentForChildren(),
                  isClean());
          response_ = null;
        }
        responseCase_ = 1;
        onChanged();
        return missBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemMetadataResponse._Hit, vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder, vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder> hitBuilder_;
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       * @return Whether the hit field is set.
       */
      @java.lang.Override
      public boolean hasHit() {
        return responseCase_ == 2;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       * @return The hit.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse._Hit getHit() {
        if (hitBuilder_ == null) {
          if (responseCase_ == 2) {
            return (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_;
          }
          return vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
        } else {
          if (responseCase_ == 2) {
            return hitBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      public Builder setHit(vectorindex.Vectorindex._ItemMetadataResponse._Hit value) {
        if (hitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          hitBuilder_.setMessage(value);
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      public Builder setHit(
          vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder builderForValue) {
        if (hitBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          hitBuilder_.setMessage(builderForValue.build());
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      public Builder mergeHit(vectorindex.Vectorindex._ItemMetadataResponse._Hit value) {
        if (hitBuilder_ == null) {
          if (responseCase_ == 2 &&
              response_ != vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance()) {
            response_ = vectorindex.Vectorindex._ItemMetadataResponse._Hit.newBuilder((vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_)
                .mergeFrom(value).buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          if (responseCase_ == 2) {
            hitBuilder_.mergeFrom(value);
          } else {
            hitBuilder_.setMessage(value);
          }
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      public Builder clearHit() {
        if (hitBuilder_ == null) {
          if (responseCase_ == 2) {
            responseCase_ = 0;
            response_ = null;
            onChanged();
          }
        } else {
          if (responseCase_ == 2) {
            responseCase_ = 0;
            response_ = null;
          }
          hitBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      public vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder getHitBuilder() {
        return getHitFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder getHitOrBuilder() {
        if ((responseCase_ == 2) && (hitBuilder_ != null)) {
          return hitBuilder_.getMessageOrBuilder();
        } else {
          if (responseCase_ == 2) {
            return (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_;
          }
          return vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemMetadataResponse._Hit hit = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemMetadataResponse._Hit, vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder, vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder> 
          getHitFieldBuilder() {
        if (hitBuilder_ == null) {
          if (!(responseCase_ == 2)) {
            response_ = vectorindex.Vectorindex._ItemMetadataResponse._Hit.getDefaultInstance();
          }
          hitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._ItemMetadataResponse._Hit, vectorindex.Vectorindex._ItemMetadataResponse._Hit.Builder, vectorindex.Vectorindex._ItemMetadataResponse._HitOrBuilder>(
                  (vectorindex.Vectorindex._ItemMetadataResponse._Hit) response_,
                  getParentForChildren(),
                  isClean());
          response_ = null;
        }
        responseCase_ = 2;
        onChanged();
        return hitBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._ItemMetadataResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._ItemMetadataResponse)
    private static final vectorindex.Vectorindex._ItemMetadataResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._ItemMetadataResponse();
    }

    public static vectorindex.Vectorindex._ItemMetadataResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_ItemMetadataResponse>
        PARSER = new com.google.protobuf.AbstractParser<_ItemMetadataResponse>() {
      @java.lang.Override
      public _ItemMetadataResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_ItemMetadataResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_ItemMetadataResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _GetItemMetadataBatchResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._GetItemMetadataBatchResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    java.util.List 
        getItemMetadataResponseList();
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    vectorindex.Vectorindex._ItemMetadataResponse getItemMetadataResponse(int index);
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    int getItemMetadataResponseCount();
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    java.util.List 
        getItemMetadataResponseOrBuilderList();
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    vectorindex.Vectorindex._ItemMetadataResponseOrBuilder getItemMetadataResponseOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._GetItemMetadataBatchResponse}
   */
  public static final class _GetItemMetadataBatchResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._GetItemMetadataBatchResponse)
      _GetItemMetadataBatchResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _GetItemMetadataBatchResponse.newBuilder() to construct.
    private _GetItemMetadataBatchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _GetItemMetadataBatchResponse() {
      itemMetadataResponse_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _GetItemMetadataBatchResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._GetItemMetadataBatchResponse.class, vectorindex.Vectorindex._GetItemMetadataBatchResponse.Builder.class);
    }

    public static final int ITEM_METADATA_RESPONSE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List itemMetadataResponse_;
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    @java.lang.Override
    public java.util.List getItemMetadataResponseList() {
      return itemMetadataResponse_;
    }
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    @java.lang.Override
    public java.util.List 
        getItemMetadataResponseOrBuilderList() {
      return itemMetadataResponse_;
    }
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    @java.lang.Override
    public int getItemMetadataResponseCount() {
      return itemMetadataResponse_.size();
    }
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponse getItemMetadataResponse(int index) {
      return itemMetadataResponse_.get(index);
    }
    /**
     * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemMetadataResponseOrBuilder getItemMetadataResponseOrBuilder(
        int index) {
      return itemMetadataResponse_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < itemMetadataResponse_.size(); i++) {
        output.writeMessage(1, itemMetadataResponse_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < itemMetadataResponse_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, itemMetadataResponse_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._GetItemMetadataBatchResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._GetItemMetadataBatchResponse other = (vectorindex.Vectorindex._GetItemMetadataBatchResponse) obj;

      if (!getItemMetadataResponseList()
          .equals(other.getItemMetadataResponseList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getItemMetadataResponseCount() > 0) {
        hash = (37 * hash) + ITEM_METADATA_RESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + getItemMetadataResponseList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._GetItemMetadataBatchResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._GetItemMetadataBatchResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._GetItemMetadataBatchResponse)
        vectorindex.Vectorindex._GetItemMetadataBatchResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._GetItemMetadataBatchResponse.class, vectorindex.Vectorindex._GetItemMetadataBatchResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._GetItemMetadataBatchResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (itemMetadataResponseBuilder_ == null) {
          itemMetadataResponse_ = java.util.Collections.emptyList();
        } else {
          itemMetadataResponse_ = null;
          itemMetadataResponseBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemMetadataBatchResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemMetadataBatchResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._GetItemMetadataBatchResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemMetadataBatchResponse build() {
        vectorindex.Vectorindex._GetItemMetadataBatchResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemMetadataBatchResponse buildPartial() {
        vectorindex.Vectorindex._GetItemMetadataBatchResponse result = new vectorindex.Vectorindex._GetItemMetadataBatchResponse(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._GetItemMetadataBatchResponse result) {
        if (itemMetadataResponseBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            itemMetadataResponse_ = java.util.Collections.unmodifiableList(itemMetadataResponse_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.itemMetadataResponse_ = itemMetadataResponse_;
        } else {
          result.itemMetadataResponse_ = itemMetadataResponseBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._GetItemMetadataBatchResponse result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._GetItemMetadataBatchResponse) {
          return mergeFrom((vectorindex.Vectorindex._GetItemMetadataBatchResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._GetItemMetadataBatchResponse other) {
        if (other == vectorindex.Vectorindex._GetItemMetadataBatchResponse.getDefaultInstance()) return this;
        if (itemMetadataResponseBuilder_ == null) {
          if (!other.itemMetadataResponse_.isEmpty()) {
            if (itemMetadataResponse_.isEmpty()) {
              itemMetadataResponse_ = other.itemMetadataResponse_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureItemMetadataResponseIsMutable();
              itemMetadataResponse_.addAll(other.itemMetadataResponse_);
            }
            onChanged();
          }
        } else {
          if (!other.itemMetadataResponse_.isEmpty()) {
            if (itemMetadataResponseBuilder_.isEmpty()) {
              itemMetadataResponseBuilder_.dispose();
              itemMetadataResponseBuilder_ = null;
              itemMetadataResponse_ = other.itemMetadataResponse_;
              bitField0_ = (bitField0_ & ~0x00000001);
              itemMetadataResponseBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getItemMetadataResponseFieldBuilder() : null;
            } else {
              itemMetadataResponseBuilder_.addAllMessages(other.itemMetadataResponse_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                vectorindex.Vectorindex._ItemMetadataResponse m =
                    input.readMessage(
                        vectorindex.Vectorindex._ItemMetadataResponse.parser(),
                        extensionRegistry);
                if (itemMetadataResponseBuilder_ == null) {
                  ensureItemMetadataResponseIsMutable();
                  itemMetadataResponse_.add(m);
                } else {
                  itemMetadataResponseBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List itemMetadataResponse_ =
        java.util.Collections.emptyList();
      private void ensureItemMetadataResponseIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          itemMetadataResponse_ = new java.util.ArrayList(itemMetadataResponse_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._ItemMetadataResponse, vectorindex.Vectorindex._ItemMetadataResponse.Builder, vectorindex.Vectorindex._ItemMetadataResponseOrBuilder> itemMetadataResponseBuilder_;

      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public java.util.List getItemMetadataResponseList() {
        if (itemMetadataResponseBuilder_ == null) {
          return java.util.Collections.unmodifiableList(itemMetadataResponse_);
        } else {
          return itemMetadataResponseBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public int getItemMetadataResponseCount() {
        if (itemMetadataResponseBuilder_ == null) {
          return itemMetadataResponse_.size();
        } else {
          return itemMetadataResponseBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public vectorindex.Vectorindex._ItemMetadataResponse getItemMetadataResponse(int index) {
        if (itemMetadataResponseBuilder_ == null) {
          return itemMetadataResponse_.get(index);
        } else {
          return itemMetadataResponseBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder setItemMetadataResponse(
          int index, vectorindex.Vectorindex._ItemMetadataResponse value) {
        if (itemMetadataResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.set(index, value);
          onChanged();
        } else {
          itemMetadataResponseBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder setItemMetadataResponse(
          int index, vectorindex.Vectorindex._ItemMetadataResponse.Builder builderForValue) {
        if (itemMetadataResponseBuilder_ == null) {
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemMetadataResponseBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder addItemMetadataResponse(vectorindex.Vectorindex._ItemMetadataResponse value) {
        if (itemMetadataResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.add(value);
          onChanged();
        } else {
          itemMetadataResponseBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder addItemMetadataResponse(
          int index, vectorindex.Vectorindex._ItemMetadataResponse value) {
        if (itemMetadataResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.add(index, value);
          onChanged();
        } else {
          itemMetadataResponseBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder addItemMetadataResponse(
          vectorindex.Vectorindex._ItemMetadataResponse.Builder builderForValue) {
        if (itemMetadataResponseBuilder_ == null) {
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.add(builderForValue.build());
          onChanged();
        } else {
          itemMetadataResponseBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder addItemMetadataResponse(
          int index, vectorindex.Vectorindex._ItemMetadataResponse.Builder builderForValue) {
        if (itemMetadataResponseBuilder_ == null) {
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemMetadataResponseBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder addAllItemMetadataResponse(
          java.lang.Iterable values) {
        if (itemMetadataResponseBuilder_ == null) {
          ensureItemMetadataResponseIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, itemMetadataResponse_);
          onChanged();
        } else {
          itemMetadataResponseBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder clearItemMetadataResponse() {
        if (itemMetadataResponseBuilder_ == null) {
          itemMetadataResponse_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          itemMetadataResponseBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public Builder removeItemMetadataResponse(int index) {
        if (itemMetadataResponseBuilder_ == null) {
          ensureItemMetadataResponseIsMutable();
          itemMetadataResponse_.remove(index);
          onChanged();
        } else {
          itemMetadataResponseBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public vectorindex.Vectorindex._ItemMetadataResponse.Builder getItemMetadataResponseBuilder(
          int index) {
        return getItemMetadataResponseFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public vectorindex.Vectorindex._ItemMetadataResponseOrBuilder getItemMetadataResponseOrBuilder(
          int index) {
        if (itemMetadataResponseBuilder_ == null) {
          return itemMetadataResponse_.get(index);  } else {
          return itemMetadataResponseBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public java.util.List 
           getItemMetadataResponseOrBuilderList() {
        if (itemMetadataResponseBuilder_ != null) {
          return itemMetadataResponseBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(itemMetadataResponse_);
        }
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public vectorindex.Vectorindex._ItemMetadataResponse.Builder addItemMetadataResponseBuilder() {
        return getItemMetadataResponseFieldBuilder().addBuilder(
            vectorindex.Vectorindex._ItemMetadataResponse.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public vectorindex.Vectorindex._ItemMetadataResponse.Builder addItemMetadataResponseBuilder(
          int index) {
        return getItemMetadataResponseFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._ItemMetadataResponse.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._ItemMetadataResponse item_metadata_response = 1;
       */
      public java.util.List 
           getItemMetadataResponseBuilderList() {
        return getItemMetadataResponseFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._ItemMetadataResponse, vectorindex.Vectorindex._ItemMetadataResponse.Builder, vectorindex.Vectorindex._ItemMetadataResponseOrBuilder> 
          getItemMetadataResponseFieldBuilder() {
        if (itemMetadataResponseBuilder_ == null) {
          itemMetadataResponseBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._ItemMetadataResponse, vectorindex.Vectorindex._ItemMetadataResponse.Builder, vectorindex.Vectorindex._ItemMetadataResponseOrBuilder>(
                  itemMetadataResponse_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          itemMetadataResponse_ = null;
        }
        return itemMetadataResponseBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._GetItemMetadataBatchResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._GetItemMetadataBatchResponse)
    private static final vectorindex.Vectorindex._GetItemMetadataBatchResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._GetItemMetadataBatchResponse();
    }

    public static vectorindex.Vectorindex._GetItemMetadataBatchResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_GetItemMetadataBatchResponse>
        PARSER = new com.google.protobuf.AbstractParser<_GetItemMetadataBatchResponse>() {
      @java.lang.Override
      public _GetItemMetadataBatchResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_GetItemMetadataBatchResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_GetItemMetadataBatchResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._GetItemMetadataBatchResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _GetItemBatchRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._GetItemBatchRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * repeated string ids = 2;
     * @return A list containing the ids.
     */
    java.util.List
        getIdsList();
    /**
     * repeated string ids = 2;
     * @return The count of ids.
     */
    int getIdsCount();
    /**
     * repeated string ids = 2;
     * @param index The index of the element to return.
     * @return The ids at the given index.
     */
    java.lang.String getIds(int index);
    /**
     * repeated string ids = 2;
     * @param index The index of the value to return.
     * @return The bytes of the ids at the given index.
     */
    com.google.protobuf.ByteString
        getIdsBytes(int index);

    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return Whether the metadataFields field is set.
     */
    boolean hasMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return The metadataFields.
     */
    vectorindex.Vectorindex._MetadataRequest getMetadataFields();
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     */
    vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder();
  }
  /**
   * Protobuf type {@code vectorindex._GetItemBatchRequest}
   */
  public static final class _GetItemBatchRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._GetItemBatchRequest)
      _GetItemBatchRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _GetItemBatchRequest.newBuilder() to construct.
    private _GetItemBatchRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _GetItemBatchRequest() {
      indexName_ = "";
      ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _GetItemBatchRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._GetItemBatchRequest.class, vectorindex.Vectorindex._GetItemBatchRequest.Builder.class);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IDS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList ids_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string ids = 2;
     * @return A list containing the ids.
     */
    public com.google.protobuf.ProtocolStringList
        getIdsList() {
      return ids_;
    }
    /**
     * repeated string ids = 2;
     * @return The count of ids.
     */
    public int getIdsCount() {
      return ids_.size();
    }
    /**
     * repeated string ids = 2;
     * @param index The index of the element to return.
     * @return The ids at the given index.
     */
    public java.lang.String getIds(int index) {
      return ids_.get(index);
    }
    /**
     * repeated string ids = 2;
     * @param index The index of the value to return.
     * @return The bytes of the ids at the given index.
     */
    public com.google.protobuf.ByteString
        getIdsBytes(int index) {
      return ids_.getByteString(index);
    }

    public static final int METADATA_FIELDS_FIELD_NUMBER = 3;
    private vectorindex.Vectorindex._MetadataRequest metadataFields_;
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return Whether the metadataFields field is set.
     */
    @java.lang.Override
    public boolean hasMetadataFields() {
      return metadataFields_ != null;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     * @return The metadataFields.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }
    /**
     * .vectorindex._MetadataRequest metadata_fields = 3;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
      return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      for (int i = 0; i < ids_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ids_.getRaw(i));
      }
      if (metadataFields_ != null) {
        output.writeMessage(3, getMetadataFields());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ids_.size(); i++) {
          dataSize += computeStringSizeNoTag(ids_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getIdsList().size();
      }
      if (metadataFields_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getMetadataFields());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._GetItemBatchRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._GetItemBatchRequest other = (vectorindex.Vectorindex._GetItemBatchRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (!getIdsList()
          .equals(other.getIdsList())) return false;
      if (hasMetadataFields() != other.hasMetadataFields()) return false;
      if (hasMetadataFields()) {
        if (!getMetadataFields()
            .equals(other.getMetadataFields())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      if (getIdsCount() > 0) {
        hash = (37 * hash) + IDS_FIELD_NUMBER;
        hash = (53 * hash) + getIdsList().hashCode();
      }
      if (hasMetadataFields()) {
        hash = (37 * hash) + METADATA_FIELDS_FIELD_NUMBER;
        hash = (53 * hash) + getMetadataFields().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemBatchRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._GetItemBatchRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._GetItemBatchRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._GetItemBatchRequest)
        vectorindex.Vectorindex._GetItemBatchRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._GetItemBatchRequest.class, vectorindex.Vectorindex._GetItemBatchRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._GetItemBatchRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        ids_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemBatchRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._GetItemBatchRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemBatchRequest build() {
        vectorindex.Vectorindex._GetItemBatchRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemBatchRequest buildPartial() {
        vectorindex.Vectorindex._GetItemBatchRequest result = new vectorindex.Vectorindex._GetItemBatchRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._GetItemBatchRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          ids_.makeImmutable();
          result.ids_ = ids_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.metadataFields_ = metadataFieldsBuilder_ == null
              ? metadataFields_
              : metadataFieldsBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._GetItemBatchRequest) {
          return mergeFrom((vectorindex.Vectorindex._GetItemBatchRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._GetItemBatchRequest other) {
        if (other == vectorindex.Vectorindex._GetItemBatchRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.ids_.isEmpty()) {
          if (ids_.isEmpty()) {
            ids_ = other.ids_;
            bitField0_ |= 0x00000002;
          } else {
            ensureIdsIsMutable();
            ids_.addAll(other.ids_);
          }
          onChanged();
        }
        if (other.hasMetadataFields()) {
          mergeMetadataFields(other.getMetadataFields());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureIdsIsMutable();
                ids_.add(s);
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getMetadataFieldsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureIdsIsMutable() {
        if (!ids_.isModifiable()) {
          ids_ = new com.google.protobuf.LazyStringArrayList(ids_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string ids = 2;
       * @return A list containing the ids.
       */
      public com.google.protobuf.ProtocolStringList
          getIdsList() {
        ids_.makeImmutable();
        return ids_;
      }
      /**
       * repeated string ids = 2;
       * @return The count of ids.
       */
      public int getIdsCount() {
        return ids_.size();
      }
      /**
       * repeated string ids = 2;
       * @param index The index of the element to return.
       * @return The ids at the given index.
       */
      public java.lang.String getIds(int index) {
        return ids_.get(index);
      }
      /**
       * repeated string ids = 2;
       * @param index The index of the value to return.
       * @return The bytes of the ids at the given index.
       */
      public com.google.protobuf.ByteString
          getIdsBytes(int index) {
        return ids_.getByteString(index);
      }
      /**
       * repeated string ids = 2;
       * @param index The index to set the value at.
       * @param value The ids to set.
       * @return This builder for chaining.
       */
      public Builder setIds(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureIdsIsMutable();
        ids_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param value The ids to add.
       * @return This builder for chaining.
       */
      public Builder addIds(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureIdsIsMutable();
        ids_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param values The ids to add.
       * @return This builder for chaining.
       */
      public Builder addAllIds(
          java.lang.Iterable values) {
        ensureIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ids_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @return This builder for chaining.
       */
      public Builder clearIds() {
        ids_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string ids = 2;
       * @param value The bytes of the ids to add.
       * @return This builder for chaining.
       */
      public Builder addIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureIdsIsMutable();
        ids_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private vectorindex.Vectorindex._MetadataRequest metadataFields_;
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> metadataFieldsBuilder_;
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       * @return Whether the metadataFields field is set.
       */
      public boolean hasMetadataFields() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       * @return The metadataFields.
       */
      public vectorindex.Vectorindex._MetadataRequest getMetadataFields() {
        if (metadataFieldsBuilder_ == null) {
          return metadataFields_ == null ? vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        } else {
          return metadataFieldsBuilder_.getMessage();
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder setMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadataFields_ = value;
        } else {
          metadataFieldsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder setMetadataFields(
          vectorindex.Vectorindex._MetadataRequest.Builder builderForValue) {
        if (metadataFieldsBuilder_ == null) {
          metadataFields_ = builderForValue.build();
        } else {
          metadataFieldsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder mergeMetadataFields(vectorindex.Vectorindex._MetadataRequest value) {
        if (metadataFieldsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            metadataFields_ != null &&
            metadataFields_ != vectorindex.Vectorindex._MetadataRequest.getDefaultInstance()) {
            getMetadataFieldsBuilder().mergeFrom(value);
          } else {
            metadataFields_ = value;
          }
        } else {
          metadataFieldsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public Builder clearMetadataFields() {
        bitField0_ = (bitField0_ & ~0x00000004);
        metadataFields_ = null;
        if (metadataFieldsBuilder_ != null) {
          metadataFieldsBuilder_.dispose();
          metadataFieldsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public vectorindex.Vectorindex._MetadataRequest.Builder getMetadataFieldsBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getMetadataFieldsFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      public vectorindex.Vectorindex._MetadataRequestOrBuilder getMetadataFieldsOrBuilder() {
        if (metadataFieldsBuilder_ != null) {
          return metadataFieldsBuilder_.getMessageOrBuilder();
        } else {
          return metadataFields_ == null ?
              vectorindex.Vectorindex._MetadataRequest.getDefaultInstance() : metadataFields_;
        }
      }
      /**
       * .vectorindex._MetadataRequest metadata_fields = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder> 
          getMetadataFieldsFieldBuilder() {
        if (metadataFieldsBuilder_ == null) {
          metadataFieldsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._MetadataRequest, vectorindex.Vectorindex._MetadataRequest.Builder, vectorindex.Vectorindex._MetadataRequestOrBuilder>(
                  getMetadataFields(),
                  getParentForChildren(),
                  isClean());
          metadataFields_ = null;
        }
        return metadataFieldsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._GetItemBatchRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._GetItemBatchRequest)
    private static final vectorindex.Vectorindex._GetItemBatchRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._GetItemBatchRequest();
    }

    public static vectorindex.Vectorindex._GetItemBatchRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_GetItemBatchRequest>
        PARSER = new com.google.protobuf.AbstractParser<_GetItemBatchRequest>() {
      @java.lang.Override
      public _GetItemBatchRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_GetItemBatchRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_GetItemBatchRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._GetItemBatchRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _ItemResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._ItemResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .vectorindex._ItemResponse._Miss miss = 1;
     * @return Whether the miss field is set.
     */
    boolean hasMiss();
    /**
     * .vectorindex._ItemResponse._Miss miss = 1;
     * @return The miss.
     */
    vectorindex.Vectorindex._ItemResponse._Miss getMiss();
    /**
     * .vectorindex._ItemResponse._Miss miss = 1;
     */
    vectorindex.Vectorindex._ItemResponse._MissOrBuilder getMissOrBuilder();

    /**
     * .vectorindex._ItemResponse._Hit hit = 2;
     * @return Whether the hit field is set.
     */
    boolean hasHit();
    /**
     * .vectorindex._ItemResponse._Hit hit = 2;
     * @return The hit.
     */
    vectorindex.Vectorindex._ItemResponse._Hit getHit();
    /**
     * .vectorindex._ItemResponse._Hit hit = 2;
     */
    vectorindex.Vectorindex._ItemResponse._HitOrBuilder getHitOrBuilder();

    vectorindex.Vectorindex._ItemResponse.ResponseCase getResponseCase();
  }
  /**
   * Protobuf type {@code vectorindex._ItemResponse}
   */
  public static final class _ItemResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._ItemResponse)
      _ItemResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _ItemResponse.newBuilder() to construct.
    private _ItemResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _ItemResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _ItemResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._ItemResponse.class, vectorindex.Vectorindex._ItemResponse.Builder.class);
    }

    public interface _MissOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._ItemResponse._Miss)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code vectorindex._ItemResponse._Miss}
     */
    public static final class _Miss extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._ItemResponse._Miss)
        _MissOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use _Miss.newBuilder() to construct.
      private _Miss(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private _Miss() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new _Miss();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Miss_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Miss_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ItemResponse._Miss.class, vectorindex.Vectorindex._ItemResponse._Miss.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._ItemResponse._Miss)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._ItemResponse._Miss other = (vectorindex.Vectorindex._ItemResponse._Miss) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemResponse._Miss parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._ItemResponse._Miss prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._ItemResponse._Miss}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._ItemResponse._Miss)
          vectorindex.Vectorindex._ItemResponse._MissOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Miss_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Miss_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._ItemResponse._Miss.class, vectorindex.Vectorindex._ItemResponse._Miss.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._ItemResponse._Miss.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Miss_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemResponse._Miss getDefaultInstanceForType() {
          return vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemResponse._Miss build() {
          vectorindex.Vectorindex._ItemResponse._Miss result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemResponse._Miss buildPartial() {
          vectorindex.Vectorindex._ItemResponse._Miss result = new vectorindex.Vectorindex._ItemResponse._Miss(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._ItemResponse._Miss) {
            return mergeFrom((vectorindex.Vectorindex._ItemResponse._Miss)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._ItemResponse._Miss other) {
          if (other == vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._ItemResponse._Miss)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._ItemResponse._Miss)
      private static final vectorindex.Vectorindex._ItemResponse._Miss DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._ItemResponse._Miss();
      }

      public static vectorindex.Vectorindex._ItemResponse._Miss getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<_Miss>
          PARSER = new com.google.protobuf.AbstractParser<_Miss>() {
        @java.lang.Override
        public _Miss parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<_Miss> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<_Miss> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse._Miss getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface _HitOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._ItemResponse._Hit)
        com.google.protobuf.MessageOrBuilder {

      /**
       * string id = 1;
       * @return The id.
       */
      java.lang.String getId();
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      com.google.protobuf.ByteString
          getIdBytes();

      /**
       * .vectorindex._Vector vector = 2;
       * @return Whether the vector field is set.
       */
      boolean hasVector();
      /**
       * .vectorindex._Vector vector = 2;
       * @return The vector.
       */
      vectorindex.Vectorindex._Vector getVector();
      /**
       * .vectorindex._Vector vector = 2;
       */
      vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder();

      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      java.util.List 
          getMetadataList();
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      vectorindex.Vectorindex._Metadata getMetadata(int index);
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      int getMetadataCount();
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      java.util.List 
          getMetadataOrBuilderList();
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code vectorindex._ItemResponse._Hit}
     */
    public static final class _Hit extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._ItemResponse._Hit)
        _HitOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use _Hit.newBuilder() to construct.
      private _Hit(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private _Hit() {
        id_ = "";
        metadata_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new _Hit();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Hit_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Hit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ItemResponse._Hit.class, vectorindex.Vectorindex._ItemResponse._Hit.Builder.class);
      }

      public static final int ID_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int VECTOR_FIELD_NUMBER = 2;
      private vectorindex.Vectorindex._Vector vector_;
      /**
       * .vectorindex._Vector vector = 2;
       * @return Whether the vector field is set.
       */
      @java.lang.Override
      public boolean hasVector() {
        return vector_ != null;
      }
      /**
       * .vectorindex._Vector vector = 2;
       * @return The vector.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._Vector getVector() {
        return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
      }
      /**
       * .vectorindex._Vector vector = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder() {
        return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
      }

      public static final int METADATA_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private java.util.List metadata_;
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      @java.lang.Override
      public java.util.List getMetadataList() {
        return metadata_;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      @java.lang.Override
      public java.util.List 
          getMetadataOrBuilderList() {
        return metadata_;
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      @java.lang.Override
      public int getMetadataCount() {
        return metadata_.size();
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._Metadata getMetadata(int index) {
        return metadata_.get(index);
      }
      /**
       * repeated .vectorindex._Metadata metadata = 3;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
          int index) {
        return metadata_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
        }
        if (vector_ != null) {
          output.writeMessage(2, getVector());
        }
        for (int i = 0; i < metadata_.size(); i++) {
          output.writeMessage(3, metadata_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
        }
        if (vector_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getVector());
        }
        for (int i = 0; i < metadata_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, metadata_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._ItemResponse._Hit)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._ItemResponse._Hit other = (vectorindex.Vectorindex._ItemResponse._Hit) obj;

        if (!getId()
            .equals(other.getId())) return false;
        if (hasVector() != other.hasVector()) return false;
        if (hasVector()) {
          if (!getVector()
              .equals(other.getVector())) return false;
        }
        if (!getMetadataList()
            .equals(other.getMetadataList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ID_FIELD_NUMBER;
        hash = (53 * hash) + getId().hashCode();
        if (hasVector()) {
          hash = (37 * hash) + VECTOR_FIELD_NUMBER;
          hash = (53 * hash) + getVector().hashCode();
        }
        if (getMetadataCount() > 0) {
          hash = (37 * hash) + METADATA_FIELD_NUMBER;
          hash = (53 * hash) + getMetadataList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._ItemResponse._Hit parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._ItemResponse._Hit prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._ItemResponse._Hit}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._ItemResponse._Hit)
          vectorindex.Vectorindex._ItemResponse._HitOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Hit_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Hit_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._ItemResponse._Hit.class, vectorindex.Vectorindex._ItemResponse._Hit.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._ItemResponse._Hit.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          id_ = "";
          vector_ = null;
          if (vectorBuilder_ != null) {
            vectorBuilder_.dispose();
            vectorBuilder_ = null;
          }
          if (metadataBuilder_ == null) {
            metadata_ = java.util.Collections.emptyList();
          } else {
            metadata_ = null;
            metadataBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse__Hit_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemResponse._Hit getDefaultInstanceForType() {
          return vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemResponse._Hit build() {
          vectorindex.Vectorindex._ItemResponse._Hit result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._ItemResponse._Hit buildPartial() {
          vectorindex.Vectorindex._ItemResponse._Hit result = new vectorindex.Vectorindex._ItemResponse._Hit(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(vectorindex.Vectorindex._ItemResponse._Hit result) {
          if (metadataBuilder_ == null) {
            if (((bitField0_ & 0x00000004) != 0)) {
              metadata_ = java.util.Collections.unmodifiableList(metadata_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.metadata_ = metadata_;
          } else {
            result.metadata_ = metadataBuilder_.build();
          }
        }

        private void buildPartial0(vectorindex.Vectorindex._ItemResponse._Hit result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.id_ = id_;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.vector_ = vectorBuilder_ == null
                ? vector_
                : vectorBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._ItemResponse._Hit) {
            return mergeFrom((vectorindex.Vectorindex._ItemResponse._Hit)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._ItemResponse._Hit other) {
          if (other == vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance()) return this;
          if (!other.getId().isEmpty()) {
            id_ = other.id_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasVector()) {
            mergeVector(other.getVector());
          }
          if (metadataBuilder_ == null) {
            if (!other.metadata_.isEmpty()) {
              if (metadata_.isEmpty()) {
                metadata_ = other.metadata_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureMetadataIsMutable();
                metadata_.addAll(other.metadata_);
              }
              onChanged();
            }
          } else {
            if (!other.metadata_.isEmpty()) {
              if (metadataBuilder_.isEmpty()) {
                metadataBuilder_.dispose();
                metadataBuilder_ = null;
                metadata_ = other.metadata_;
                bitField0_ = (bitField0_ & ~0x00000004);
                metadataBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getMetadataFieldBuilder() : null;
              } else {
                metadataBuilder_.addAllMessages(other.metadata_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  id_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getVectorFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 26: {
                  vectorindex.Vectorindex._Metadata m =
                      input.readMessage(
                          vectorindex.Vectorindex._Metadata.parser(),
                          extensionRegistry);
                  if (metadataBuilder_ == null) {
                    ensureMetadataIsMutable();
                    metadata_.add(m);
                  } else {
                    metadataBuilder_.addMessage(m);
                  }
                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object id_ = "";
        /**
         * string id = 1;
         * @return The id.
         */
        public java.lang.String getId() {
          java.lang.Object ref = id_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            id_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string id = 1;
         * @return The bytes for id.
         */
        public com.google.protobuf.ByteString
            getIdBytes() {
          java.lang.Object ref = id_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            id_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string id = 1;
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * string id = 1;
         * @return This builder for chaining.
         */
        public Builder clearId() {
          id_ = getDefaultInstance().getId();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * string id = 1;
         * @param value The bytes for id to set.
         * @return This builder for chaining.
         */
        public Builder setIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          id_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private vectorindex.Vectorindex._Vector vector_;
        private com.google.protobuf.SingleFieldBuilderV3<
            vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> vectorBuilder_;
        /**
         * .vectorindex._Vector vector = 2;
         * @return Whether the vector field is set.
         */
        public boolean hasVector() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * .vectorindex._Vector vector = 2;
         * @return The vector.
         */
        public vectorindex.Vectorindex._Vector getVector() {
          if (vectorBuilder_ == null) {
            return vector_ == null ? vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
          } else {
            return vectorBuilder_.getMessage();
          }
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        public Builder setVector(vectorindex.Vectorindex._Vector value) {
          if (vectorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            vector_ = value;
          } else {
            vectorBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        public Builder setVector(
            vectorindex.Vectorindex._Vector.Builder builderForValue) {
          if (vectorBuilder_ == null) {
            vector_ = builderForValue.build();
          } else {
            vectorBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        public Builder mergeVector(vectorindex.Vectorindex._Vector value) {
          if (vectorBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
              vector_ != null &&
              vector_ != vectorindex.Vectorindex._Vector.getDefaultInstance()) {
              getVectorBuilder().mergeFrom(value);
            } else {
              vector_ = value;
            }
          } else {
            vectorBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        public Builder clearVector() {
          bitField0_ = (bitField0_ & ~0x00000002);
          vector_ = null;
          if (vectorBuilder_ != null) {
            vectorBuilder_.dispose();
            vectorBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        public vectorindex.Vectorindex._Vector.Builder getVectorBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getVectorFieldBuilder().getBuilder();
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        public vectorindex.Vectorindex._VectorOrBuilder getVectorOrBuilder() {
          if (vectorBuilder_ != null) {
            return vectorBuilder_.getMessageOrBuilder();
          } else {
            return vector_ == null ?
                vectorindex.Vectorindex._Vector.getDefaultInstance() : vector_;
          }
        }
        /**
         * .vectorindex._Vector vector = 2;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder> 
            getVectorFieldBuilder() {
          if (vectorBuilder_ == null) {
            vectorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                vectorindex.Vectorindex._Vector, vectorindex.Vectorindex._Vector.Builder, vectorindex.Vectorindex._VectorOrBuilder>(
                    getVector(),
                    getParentForChildren(),
                    isClean());
            vector_ = null;
          }
          return vectorBuilder_;
        }

        private java.util.List metadata_ =
          java.util.Collections.emptyList();
        private void ensureMetadataIsMutable() {
          if (!((bitField0_ & 0x00000004) != 0)) {
            metadata_ = new java.util.ArrayList(metadata_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> metadataBuilder_;

        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public java.util.List getMetadataList() {
          if (metadataBuilder_ == null) {
            return java.util.Collections.unmodifiableList(metadata_);
          } else {
            return metadataBuilder_.getMessageList();
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public int getMetadataCount() {
          if (metadataBuilder_ == null) {
            return metadata_.size();
          } else {
            return metadataBuilder_.getCount();
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public vectorindex.Vectorindex._Metadata getMetadata(int index) {
          if (metadataBuilder_ == null) {
            return metadata_.get(index);
          } else {
            return metadataBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder setMetadata(
            int index, vectorindex.Vectorindex._Metadata value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureMetadataIsMutable();
            metadata_.set(index, value);
            onChanged();
          } else {
            metadataBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder setMetadata(
            int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.set(index, builderForValue.build());
            onChanged();
          } else {
            metadataBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder addMetadata(vectorindex.Vectorindex._Metadata value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureMetadataIsMutable();
            metadata_.add(value);
            onChanged();
          } else {
            metadataBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder addMetadata(
            int index, vectorindex.Vectorindex._Metadata value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureMetadataIsMutable();
            metadata_.add(index, value);
            onChanged();
          } else {
            metadataBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder addMetadata(
            vectorindex.Vectorindex._Metadata.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.add(builderForValue.build());
            onChanged();
          } else {
            metadataBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder addMetadata(
            int index, vectorindex.Vectorindex._Metadata.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.add(index, builderForValue.build());
            onChanged();
          } else {
            metadataBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder addAllMetadata(
            java.lang.Iterable values) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, metadata_);
            onChanged();
          } else {
            metadataBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder clearMetadata() {
          if (metadataBuilder_ == null) {
            metadata_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            metadataBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public Builder removeMetadata(int index) {
          if (metadataBuilder_ == null) {
            ensureMetadataIsMutable();
            metadata_.remove(index);
            onChanged();
          } else {
            metadataBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public vectorindex.Vectorindex._Metadata.Builder getMetadataBuilder(
            int index) {
          return getMetadataFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public vectorindex.Vectorindex._MetadataOrBuilder getMetadataOrBuilder(
            int index) {
          if (metadataBuilder_ == null) {
            return metadata_.get(index);  } else {
            return metadataBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public java.util.List 
             getMetadataOrBuilderList() {
          if (metadataBuilder_ != null) {
            return metadataBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(metadata_);
          }
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder() {
          return getMetadataFieldBuilder().addBuilder(
              vectorindex.Vectorindex._Metadata.getDefaultInstance());
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public vectorindex.Vectorindex._Metadata.Builder addMetadataBuilder(
            int index) {
          return getMetadataFieldBuilder().addBuilder(
              index, vectorindex.Vectorindex._Metadata.getDefaultInstance());
        }
        /**
         * repeated .vectorindex._Metadata metadata = 3;
         */
        public java.util.List 
             getMetadataBuilderList() {
          return getMetadataFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder> 
            getMetadataFieldBuilder() {
          if (metadataBuilder_ == null) {
            metadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                vectorindex.Vectorindex._Metadata, vectorindex.Vectorindex._Metadata.Builder, vectorindex.Vectorindex._MetadataOrBuilder>(
                    metadata_,
                    ((bitField0_ & 0x00000004) != 0),
                    getParentForChildren(),
                    isClean());
            metadata_ = null;
          }
          return metadataBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._ItemResponse._Hit)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._ItemResponse._Hit)
      private static final vectorindex.Vectorindex._ItemResponse._Hit DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._ItemResponse._Hit();
      }

      public static vectorindex.Vectorindex._ItemResponse._Hit getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<_Hit>
          PARSER = new com.google.protobuf.AbstractParser<_Hit>() {
        @java.lang.Override
        public _Hit parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<_Hit> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<_Hit> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse._Hit getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int responseCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object response_;
    public enum ResponseCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      MISS(1),
      HIT(2),
      RESPONSE_NOT_SET(0);
      private final int value;
      private ResponseCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseCase valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseCase forNumber(int value) {
        switch (value) {
          case 1: return MISS;
          case 2: return HIT;
          case 0: return RESPONSE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ResponseCase
    getResponseCase() {
      return ResponseCase.forNumber(
          responseCase_);
    }

    public static final int MISS_FIELD_NUMBER = 1;
    /**
     * .vectorindex._ItemResponse._Miss miss = 1;
     * @return Whether the miss field is set.
     */
    @java.lang.Override
    public boolean hasMiss() {
      return responseCase_ == 1;
    }
    /**
     * .vectorindex._ItemResponse._Miss miss = 1;
     * @return The miss.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponse._Miss getMiss() {
      if (responseCase_ == 1) {
         return (vectorindex.Vectorindex._ItemResponse._Miss) response_;
      }
      return vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
    }
    /**
     * .vectorindex._ItemResponse._Miss miss = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponse._MissOrBuilder getMissOrBuilder() {
      if (responseCase_ == 1) {
         return (vectorindex.Vectorindex._ItemResponse._Miss) response_;
      }
      return vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
    }

    public static final int HIT_FIELD_NUMBER = 2;
    /**
     * .vectorindex._ItemResponse._Hit hit = 2;
     * @return Whether the hit field is set.
     */
    @java.lang.Override
    public boolean hasHit() {
      return responseCase_ == 2;
    }
    /**
     * .vectorindex._ItemResponse._Hit hit = 2;
     * @return The hit.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponse._Hit getHit() {
      if (responseCase_ == 2) {
         return (vectorindex.Vectorindex._ItemResponse._Hit) response_;
      }
      return vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
    }
    /**
     * .vectorindex._ItemResponse._Hit hit = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponse._HitOrBuilder getHitOrBuilder() {
      if (responseCase_ == 2) {
         return (vectorindex.Vectorindex._ItemResponse._Hit) response_;
      }
      return vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (responseCase_ == 1) {
        output.writeMessage(1, (vectorindex.Vectorindex._ItemResponse._Miss) response_);
      }
      if (responseCase_ == 2) {
        output.writeMessage(2, (vectorindex.Vectorindex._ItemResponse._Hit) response_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (responseCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (vectorindex.Vectorindex._ItemResponse._Miss) response_);
      }
      if (responseCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (vectorindex.Vectorindex._ItemResponse._Hit) response_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._ItemResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._ItemResponse other = (vectorindex.Vectorindex._ItemResponse) obj;

      if (!getResponseCase().equals(other.getResponseCase())) return false;
      switch (responseCase_) {
        case 1:
          if (!getMiss()
              .equals(other.getMiss())) return false;
          break;
        case 2:
          if (!getHit()
              .equals(other.getHit())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (responseCase_) {
        case 1:
          hash = (37 * hash) + MISS_FIELD_NUMBER;
          hash = (53 * hash) + getMiss().hashCode();
          break;
        case 2:
          hash = (37 * hash) + HIT_FIELD_NUMBER;
          hash = (53 * hash) + getHit().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ItemResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._ItemResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._ItemResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._ItemResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._ItemResponse)
        vectorindex.Vectorindex._ItemResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._ItemResponse.class, vectorindex.Vectorindex._ItemResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._ItemResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (missBuilder_ != null) {
          missBuilder_.clear();
        }
        if (hitBuilder_ != null) {
          hitBuilder_.clear();
        }
        responseCase_ = 0;
        response_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__ItemResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._ItemResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse build() {
        vectorindex.Vectorindex._ItemResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse buildPartial() {
        vectorindex.Vectorindex._ItemResponse result = new vectorindex.Vectorindex._ItemResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._ItemResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._ItemResponse result) {
        result.responseCase_ = responseCase_;
        result.response_ = this.response_;
        if (responseCase_ == 1 &&
            missBuilder_ != null) {
          result.response_ = missBuilder_.build();
        }
        if (responseCase_ == 2 &&
            hitBuilder_ != null) {
          result.response_ = hitBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._ItemResponse) {
          return mergeFrom((vectorindex.Vectorindex._ItemResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._ItemResponse other) {
        if (other == vectorindex.Vectorindex._ItemResponse.getDefaultInstance()) return this;
        switch (other.getResponseCase()) {
          case MISS: {
            mergeMiss(other.getMiss());
            break;
          }
          case HIT: {
            mergeHit(other.getHit());
            break;
          }
          case RESPONSE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getMissFieldBuilder().getBuilder(),
                    extensionRegistry);
                responseCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getHitFieldBuilder().getBuilder(),
                    extensionRegistry);
                responseCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int responseCase_ = 0;
      private java.lang.Object response_;
      public ResponseCase
          getResponseCase() {
        return ResponseCase.forNumber(
            responseCase_);
      }

      public Builder clearResponse() {
        responseCase_ = 0;
        response_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemResponse._Miss, vectorindex.Vectorindex._ItemResponse._Miss.Builder, vectorindex.Vectorindex._ItemResponse._MissOrBuilder> missBuilder_;
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       * @return Whether the miss field is set.
       */
      @java.lang.Override
      public boolean hasMiss() {
        return responseCase_ == 1;
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       * @return The miss.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse._Miss getMiss() {
        if (missBuilder_ == null) {
          if (responseCase_ == 1) {
            return (vectorindex.Vectorindex._ItemResponse._Miss) response_;
          }
          return vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
        } else {
          if (responseCase_ == 1) {
            return missBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      public Builder setMiss(vectorindex.Vectorindex._ItemResponse._Miss value) {
        if (missBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          missBuilder_.setMessage(value);
        }
        responseCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      public Builder setMiss(
          vectorindex.Vectorindex._ItemResponse._Miss.Builder builderForValue) {
        if (missBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          missBuilder_.setMessage(builderForValue.build());
        }
        responseCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      public Builder mergeMiss(vectorindex.Vectorindex._ItemResponse._Miss value) {
        if (missBuilder_ == null) {
          if (responseCase_ == 1 &&
              response_ != vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance()) {
            response_ = vectorindex.Vectorindex._ItemResponse._Miss.newBuilder((vectorindex.Vectorindex._ItemResponse._Miss) response_)
                .mergeFrom(value).buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          if (responseCase_ == 1) {
            missBuilder_.mergeFrom(value);
          } else {
            missBuilder_.setMessage(value);
          }
        }
        responseCase_ = 1;
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      public Builder clearMiss() {
        if (missBuilder_ == null) {
          if (responseCase_ == 1) {
            responseCase_ = 0;
            response_ = null;
            onChanged();
          }
        } else {
          if (responseCase_ == 1) {
            responseCase_ = 0;
            response_ = null;
          }
          missBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      public vectorindex.Vectorindex._ItemResponse._Miss.Builder getMissBuilder() {
        return getMissFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse._MissOrBuilder getMissOrBuilder() {
        if ((responseCase_ == 1) && (missBuilder_ != null)) {
          return missBuilder_.getMessageOrBuilder();
        } else {
          if (responseCase_ == 1) {
            return (vectorindex.Vectorindex._ItemResponse._Miss) response_;
          }
          return vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemResponse._Miss miss = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemResponse._Miss, vectorindex.Vectorindex._ItemResponse._Miss.Builder, vectorindex.Vectorindex._ItemResponse._MissOrBuilder> 
          getMissFieldBuilder() {
        if (missBuilder_ == null) {
          if (!(responseCase_ == 1)) {
            response_ = vectorindex.Vectorindex._ItemResponse._Miss.getDefaultInstance();
          }
          missBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._ItemResponse._Miss, vectorindex.Vectorindex._ItemResponse._Miss.Builder, vectorindex.Vectorindex._ItemResponse._MissOrBuilder>(
                  (vectorindex.Vectorindex._ItemResponse._Miss) response_,
                  getParentForChildren(),
                  isClean());
          response_ = null;
        }
        responseCase_ = 1;
        onChanged();
        return missBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemResponse._Hit, vectorindex.Vectorindex._ItemResponse._Hit.Builder, vectorindex.Vectorindex._ItemResponse._HitOrBuilder> hitBuilder_;
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       * @return Whether the hit field is set.
       */
      @java.lang.Override
      public boolean hasHit() {
        return responseCase_ == 2;
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       * @return The hit.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse._Hit getHit() {
        if (hitBuilder_ == null) {
          if (responseCase_ == 2) {
            return (vectorindex.Vectorindex._ItemResponse._Hit) response_;
          }
          return vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
        } else {
          if (responseCase_ == 2) {
            return hitBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      public Builder setHit(vectorindex.Vectorindex._ItemResponse._Hit value) {
        if (hitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          response_ = value;
          onChanged();
        } else {
          hitBuilder_.setMessage(value);
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      public Builder setHit(
          vectorindex.Vectorindex._ItemResponse._Hit.Builder builderForValue) {
        if (hitBuilder_ == null) {
          response_ = builderForValue.build();
          onChanged();
        } else {
          hitBuilder_.setMessage(builderForValue.build());
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      public Builder mergeHit(vectorindex.Vectorindex._ItemResponse._Hit value) {
        if (hitBuilder_ == null) {
          if (responseCase_ == 2 &&
              response_ != vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance()) {
            response_ = vectorindex.Vectorindex._ItemResponse._Hit.newBuilder((vectorindex.Vectorindex._ItemResponse._Hit) response_)
                .mergeFrom(value).buildPartial();
          } else {
            response_ = value;
          }
          onChanged();
        } else {
          if (responseCase_ == 2) {
            hitBuilder_.mergeFrom(value);
          } else {
            hitBuilder_.setMessage(value);
          }
        }
        responseCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      public Builder clearHit() {
        if (hitBuilder_ == null) {
          if (responseCase_ == 2) {
            responseCase_ = 0;
            response_ = null;
            onChanged();
          }
        } else {
          if (responseCase_ == 2) {
            responseCase_ = 0;
            response_ = null;
          }
          hitBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      public vectorindex.Vectorindex._ItemResponse._Hit.Builder getHitBuilder() {
        return getHitFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._ItemResponse._HitOrBuilder getHitOrBuilder() {
        if ((responseCase_ == 2) && (hitBuilder_ != null)) {
          return hitBuilder_.getMessageOrBuilder();
        } else {
          if (responseCase_ == 2) {
            return (vectorindex.Vectorindex._ItemResponse._Hit) response_;
          }
          return vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._ItemResponse._Hit hit = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._ItemResponse._Hit, vectorindex.Vectorindex._ItemResponse._Hit.Builder, vectorindex.Vectorindex._ItemResponse._HitOrBuilder> 
          getHitFieldBuilder() {
        if (hitBuilder_ == null) {
          if (!(responseCase_ == 2)) {
            response_ = vectorindex.Vectorindex._ItemResponse._Hit.getDefaultInstance();
          }
          hitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._ItemResponse._Hit, vectorindex.Vectorindex._ItemResponse._Hit.Builder, vectorindex.Vectorindex._ItemResponse._HitOrBuilder>(
                  (vectorindex.Vectorindex._ItemResponse._Hit) response_,
                  getParentForChildren(),
                  isClean());
          response_ = null;
        }
        responseCase_ = 2;
        onChanged();
        return hitBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._ItemResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._ItemResponse)
    private static final vectorindex.Vectorindex._ItemResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._ItemResponse();
    }

    public static vectorindex.Vectorindex._ItemResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_ItemResponse>
        PARSER = new com.google.protobuf.AbstractParser<_ItemResponse>() {
      @java.lang.Override
      public _ItemResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_ItemResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_ItemResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _GetItemBatchResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._GetItemBatchResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    java.util.List 
        getItemResponseList();
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    vectorindex.Vectorindex._ItemResponse getItemResponse(int index);
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    int getItemResponseCount();
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    java.util.List 
        getItemResponseOrBuilderList();
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    vectorindex.Vectorindex._ItemResponseOrBuilder getItemResponseOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code vectorindex._GetItemBatchResponse}
   */
  public static final class _GetItemBatchResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._GetItemBatchResponse)
      _GetItemBatchResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _GetItemBatchResponse.newBuilder() to construct.
    private _GetItemBatchResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _GetItemBatchResponse() {
      itemResponse_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _GetItemBatchResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._GetItemBatchResponse.class, vectorindex.Vectorindex._GetItemBatchResponse.Builder.class);
    }

    public static final int ITEM_RESPONSE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List itemResponse_;
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    @java.lang.Override
    public java.util.List getItemResponseList() {
      return itemResponse_;
    }
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    @java.lang.Override
    public java.util.List 
        getItemResponseOrBuilderList() {
      return itemResponse_;
    }
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    @java.lang.Override
    public int getItemResponseCount() {
      return itemResponse_.size();
    }
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponse getItemResponse(int index) {
      return itemResponse_.get(index);
    }
    /**
     * repeated .vectorindex._ItemResponse item_response = 1;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._ItemResponseOrBuilder getItemResponseOrBuilder(
        int index) {
      return itemResponse_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < itemResponse_.size(); i++) {
        output.writeMessage(1, itemResponse_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < itemResponse_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, itemResponse_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._GetItemBatchResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._GetItemBatchResponse other = (vectorindex.Vectorindex._GetItemBatchResponse) obj;

      if (!getItemResponseList()
          .equals(other.getItemResponseList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getItemResponseCount() > 0) {
        hash = (37 * hash) + ITEM_RESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + getItemResponseList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._GetItemBatchResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._GetItemBatchResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._GetItemBatchResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._GetItemBatchResponse)
        vectorindex.Vectorindex._GetItemBatchResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._GetItemBatchResponse.class, vectorindex.Vectorindex._GetItemBatchResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._GetItemBatchResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (itemResponseBuilder_ == null) {
          itemResponse_ = java.util.Collections.emptyList();
        } else {
          itemResponse_ = null;
          itemResponseBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__GetItemBatchResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemBatchResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._GetItemBatchResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemBatchResponse build() {
        vectorindex.Vectorindex._GetItemBatchResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._GetItemBatchResponse buildPartial() {
        vectorindex.Vectorindex._GetItemBatchResponse result = new vectorindex.Vectorindex._GetItemBatchResponse(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(vectorindex.Vectorindex._GetItemBatchResponse result) {
        if (itemResponseBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            itemResponse_ = java.util.Collections.unmodifiableList(itemResponse_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.itemResponse_ = itemResponse_;
        } else {
          result.itemResponse_ = itemResponseBuilder_.build();
        }
      }

      private void buildPartial0(vectorindex.Vectorindex._GetItemBatchResponse result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._GetItemBatchResponse) {
          return mergeFrom((vectorindex.Vectorindex._GetItemBatchResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._GetItemBatchResponse other) {
        if (other == vectorindex.Vectorindex._GetItemBatchResponse.getDefaultInstance()) return this;
        if (itemResponseBuilder_ == null) {
          if (!other.itemResponse_.isEmpty()) {
            if (itemResponse_.isEmpty()) {
              itemResponse_ = other.itemResponse_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureItemResponseIsMutable();
              itemResponse_.addAll(other.itemResponse_);
            }
            onChanged();
          }
        } else {
          if (!other.itemResponse_.isEmpty()) {
            if (itemResponseBuilder_.isEmpty()) {
              itemResponseBuilder_.dispose();
              itemResponseBuilder_ = null;
              itemResponse_ = other.itemResponse_;
              bitField0_ = (bitField0_ & ~0x00000001);
              itemResponseBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getItemResponseFieldBuilder() : null;
            } else {
              itemResponseBuilder_.addAllMessages(other.itemResponse_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                vectorindex.Vectorindex._ItemResponse m =
                    input.readMessage(
                        vectorindex.Vectorindex._ItemResponse.parser(),
                        extensionRegistry);
                if (itemResponseBuilder_ == null) {
                  ensureItemResponseIsMutable();
                  itemResponse_.add(m);
                } else {
                  itemResponseBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List itemResponse_ =
        java.util.Collections.emptyList();
      private void ensureItemResponseIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          itemResponse_ = new java.util.ArrayList(itemResponse_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._ItemResponse, vectorindex.Vectorindex._ItemResponse.Builder, vectorindex.Vectorindex._ItemResponseOrBuilder> itemResponseBuilder_;

      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public java.util.List getItemResponseList() {
        if (itemResponseBuilder_ == null) {
          return java.util.Collections.unmodifiableList(itemResponse_);
        } else {
          return itemResponseBuilder_.getMessageList();
        }
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public int getItemResponseCount() {
        if (itemResponseBuilder_ == null) {
          return itemResponse_.size();
        } else {
          return itemResponseBuilder_.getCount();
        }
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public vectorindex.Vectorindex._ItemResponse getItemResponse(int index) {
        if (itemResponseBuilder_ == null) {
          return itemResponse_.get(index);
        } else {
          return itemResponseBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder setItemResponse(
          int index, vectorindex.Vectorindex._ItemResponse value) {
        if (itemResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemResponseIsMutable();
          itemResponse_.set(index, value);
          onChanged();
        } else {
          itemResponseBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder setItemResponse(
          int index, vectorindex.Vectorindex._ItemResponse.Builder builderForValue) {
        if (itemResponseBuilder_ == null) {
          ensureItemResponseIsMutable();
          itemResponse_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemResponseBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder addItemResponse(vectorindex.Vectorindex._ItemResponse value) {
        if (itemResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemResponseIsMutable();
          itemResponse_.add(value);
          onChanged();
        } else {
          itemResponseBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder addItemResponse(
          int index, vectorindex.Vectorindex._ItemResponse value) {
        if (itemResponseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemResponseIsMutable();
          itemResponse_.add(index, value);
          onChanged();
        } else {
          itemResponseBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder addItemResponse(
          vectorindex.Vectorindex._ItemResponse.Builder builderForValue) {
        if (itemResponseBuilder_ == null) {
          ensureItemResponseIsMutable();
          itemResponse_.add(builderForValue.build());
          onChanged();
        } else {
          itemResponseBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder addItemResponse(
          int index, vectorindex.Vectorindex._ItemResponse.Builder builderForValue) {
        if (itemResponseBuilder_ == null) {
          ensureItemResponseIsMutable();
          itemResponse_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemResponseBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder addAllItemResponse(
          java.lang.Iterable values) {
        if (itemResponseBuilder_ == null) {
          ensureItemResponseIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, itemResponse_);
          onChanged();
        } else {
          itemResponseBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder clearItemResponse() {
        if (itemResponseBuilder_ == null) {
          itemResponse_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          itemResponseBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public Builder removeItemResponse(int index) {
        if (itemResponseBuilder_ == null) {
          ensureItemResponseIsMutable();
          itemResponse_.remove(index);
          onChanged();
        } else {
          itemResponseBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public vectorindex.Vectorindex._ItemResponse.Builder getItemResponseBuilder(
          int index) {
        return getItemResponseFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public vectorindex.Vectorindex._ItemResponseOrBuilder getItemResponseOrBuilder(
          int index) {
        if (itemResponseBuilder_ == null) {
          return itemResponse_.get(index);  } else {
          return itemResponseBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public java.util.List 
           getItemResponseOrBuilderList() {
        if (itemResponseBuilder_ != null) {
          return itemResponseBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(itemResponse_);
        }
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public vectorindex.Vectorindex._ItemResponse.Builder addItemResponseBuilder() {
        return getItemResponseFieldBuilder().addBuilder(
            vectorindex.Vectorindex._ItemResponse.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public vectorindex.Vectorindex._ItemResponse.Builder addItemResponseBuilder(
          int index) {
        return getItemResponseFieldBuilder().addBuilder(
            index, vectorindex.Vectorindex._ItemResponse.getDefaultInstance());
      }
      /**
       * repeated .vectorindex._ItemResponse item_response = 1;
       */
      public java.util.List 
           getItemResponseBuilderList() {
        return getItemResponseFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          vectorindex.Vectorindex._ItemResponse, vectorindex.Vectorindex._ItemResponse.Builder, vectorindex.Vectorindex._ItemResponseOrBuilder> 
          getItemResponseFieldBuilder() {
        if (itemResponseBuilder_ == null) {
          itemResponseBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              vectorindex.Vectorindex._ItemResponse, vectorindex.Vectorindex._ItemResponse.Builder, vectorindex.Vectorindex._ItemResponseOrBuilder>(
                  itemResponse_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          itemResponse_ = null;
        }
        return itemResponseBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._GetItemBatchResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._GetItemBatchResponse)
    private static final vectorindex.Vectorindex._GetItemBatchResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._GetItemBatchResponse();
    }

    public static vectorindex.Vectorindex._GetItemBatchResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_GetItemBatchResponse>
        PARSER = new com.google.protobuf.AbstractParser<_GetItemBatchResponse>() {
      @java.lang.Override
      public _GetItemBatchResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_GetItemBatchResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_GetItemBatchResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._GetItemBatchResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _CountItemsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._CountItemsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string index_name = 1;
     * @return The indexName.
     */
    java.lang.String getIndexName();
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    com.google.protobuf.ByteString
        getIndexNameBytes();

    /**
     * .vectorindex._CountItemsRequest.All all = 2;
     * @return Whether the all field is set.
     */
    boolean hasAll();
    /**
     * .vectorindex._CountItemsRequest.All all = 2;
     * @return The all.
     */
    vectorindex.Vectorindex._CountItemsRequest.All getAll();
    /**
     * .vectorindex._CountItemsRequest.All all = 2;
     */
    vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder getAllOrBuilder();

    vectorindex.Vectorindex._CountItemsRequest.FilterCase getFilterCase();
  }
  /**
   * Protobuf type {@code vectorindex._CountItemsRequest}
   */
  public static final class _CountItemsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._CountItemsRequest)
      _CountItemsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _CountItemsRequest.newBuilder() to construct.
    private _CountItemsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _CountItemsRequest() {
      indexName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _CountItemsRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._CountItemsRequest.class, vectorindex.Vectorindex._CountItemsRequest.Builder.class);
    }

    public interface AllOrBuilder extends
        // @@protoc_insertion_point(interface_extends:vectorindex._CountItemsRequest.All)
        com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code vectorindex._CountItemsRequest.All}
     */
    public static final class All extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:vectorindex._CountItemsRequest.All)
        AllOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use All.newBuilder() to construct.
      private All(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private All() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new All();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_All_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_All_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._CountItemsRequest.All.class, vectorindex.Vectorindex._CountItemsRequest.All.Builder.class);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof vectorindex.Vectorindex._CountItemsRequest.All)) {
          return super.equals(obj);
        }
        vectorindex.Vectorindex._CountItemsRequest.All other = (vectorindex.Vectorindex._CountItemsRequest.All) obj;

        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static vectorindex.Vectorindex._CountItemsRequest.All parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(vectorindex.Vectorindex._CountItemsRequest.All prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code vectorindex._CountItemsRequest.All}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:vectorindex._CountItemsRequest.All)
          vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_All_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_All_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  vectorindex.Vectorindex._CountItemsRequest.All.class, vectorindex.Vectorindex._CountItemsRequest.All.Builder.class);
        }

        // Construct using vectorindex.Vectorindex._CountItemsRequest.All.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_All_descriptor;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._CountItemsRequest.All getDefaultInstanceForType() {
          return vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
        }

        @java.lang.Override
        public vectorindex.Vectorindex._CountItemsRequest.All build() {
          vectorindex.Vectorindex._CountItemsRequest.All result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public vectorindex.Vectorindex._CountItemsRequest.All buildPartial() {
          vectorindex.Vectorindex._CountItemsRequest.All result = new vectorindex.Vectorindex._CountItemsRequest.All(this);
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof vectorindex.Vectorindex._CountItemsRequest.All) {
            return mergeFrom((vectorindex.Vectorindex._CountItemsRequest.All)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(vectorindex.Vectorindex._CountItemsRequest.All other) {
          if (other == vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:vectorindex._CountItemsRequest.All)
      }

      // @@protoc_insertion_point(class_scope:vectorindex._CountItemsRequest.All)
      private static final vectorindex.Vectorindex._CountItemsRequest.All DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new vectorindex.Vectorindex._CountItemsRequest.All();
      }

      public static vectorindex.Vectorindex._CountItemsRequest.All getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public All parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsRequest.All getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int filterCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object filter_;
    public enum FilterCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ALL(2),
      FILTER_NOT_SET(0);
      private final int value;
      private FilterCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static FilterCase valueOf(int value) {
        return forNumber(value);
      }

      public static FilterCase forNumber(int value) {
        switch (value) {
          case 2: return ALL;
          case 0: return FILTER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public FilterCase
    getFilterCase() {
      return FilterCase.forNumber(
          filterCase_);
    }

    public static final int INDEX_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object indexName_ = "";
    /**
     * string index_name = 1;
     * @return The indexName.
     */
    @java.lang.Override
    public java.lang.String getIndexName() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        indexName_ = s;
        return s;
      }
    }
    /**
     * string index_name = 1;
     * @return The bytes for indexName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIndexNameBytes() {
      java.lang.Object ref = indexName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        indexName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALL_FIELD_NUMBER = 2;
    /**
     * .vectorindex._CountItemsRequest.All all = 2;
     * @return Whether the all field is set.
     */
    @java.lang.Override
    public boolean hasAll() {
      return filterCase_ == 2;
    }
    /**
     * .vectorindex._CountItemsRequest.All all = 2;
     * @return The all.
     */
    @java.lang.Override
    public vectorindex.Vectorindex._CountItemsRequest.All getAll() {
      if (filterCase_ == 2) {
         return (vectorindex.Vectorindex._CountItemsRequest.All) filter_;
      }
      return vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
    }
    /**
     * .vectorindex._CountItemsRequest.All all = 2;
     */
    @java.lang.Override
    public vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder getAllOrBuilder() {
      if (filterCase_ == 2) {
         return (vectorindex.Vectorindex._CountItemsRequest.All) filter_;
      }
      return vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, indexName_);
      }
      if (filterCase_ == 2) {
        output.writeMessage(2, (vectorindex.Vectorindex._CountItemsRequest.All) filter_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(indexName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, indexName_);
      }
      if (filterCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (vectorindex.Vectorindex._CountItemsRequest.All) filter_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._CountItemsRequest)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._CountItemsRequest other = (vectorindex.Vectorindex._CountItemsRequest) obj;

      if (!getIndexName()
          .equals(other.getIndexName())) return false;
      if (!getFilterCase().equals(other.getFilterCase())) return false;
      switch (filterCase_) {
        case 2:
          if (!getAll()
              .equals(other.getAll())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INDEX_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getIndexName().hashCode();
      switch (filterCase_) {
        case 2:
          hash = (37 * hash) + ALL_FIELD_NUMBER;
          hash = (53 * hash) + getAll().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._CountItemsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._CountItemsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._CountItemsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._CountItemsRequest)
        vectorindex.Vectorindex._CountItemsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._CountItemsRequest.class, vectorindex.Vectorindex._CountItemsRequest.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._CountItemsRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        indexName_ = "";
        if (allBuilder_ != null) {
          allBuilder_.clear();
        }
        filterCase_ = 0;
        filter_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsRequest_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsRequest getDefaultInstanceForType() {
        return vectorindex.Vectorindex._CountItemsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsRequest build() {
        vectorindex.Vectorindex._CountItemsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsRequest buildPartial() {
        vectorindex.Vectorindex._CountItemsRequest result = new vectorindex.Vectorindex._CountItemsRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._CountItemsRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.indexName_ = indexName_;
        }
      }

      private void buildPartialOneofs(vectorindex.Vectorindex._CountItemsRequest result) {
        result.filterCase_ = filterCase_;
        result.filter_ = this.filter_;
        if (filterCase_ == 2 &&
            allBuilder_ != null) {
          result.filter_ = allBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._CountItemsRequest) {
          return mergeFrom((vectorindex.Vectorindex._CountItemsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._CountItemsRequest other) {
        if (other == vectorindex.Vectorindex._CountItemsRequest.getDefaultInstance()) return this;
        if (!other.getIndexName().isEmpty()) {
          indexName_ = other.indexName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getFilterCase()) {
          case ALL: {
            mergeAll(other.getAll());
            break;
          }
          case FILTER_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                indexName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getAllFieldBuilder().getBuilder(),
                    extensionRegistry);
                filterCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int filterCase_ = 0;
      private java.lang.Object filter_;
      public FilterCase
          getFilterCase() {
        return FilterCase.forNumber(
            filterCase_);
      }

      public Builder clearFilter() {
        filterCase_ = 0;
        filter_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object indexName_ = "";
      /**
       * string index_name = 1;
       * @return The indexName.
       */
      public java.lang.String getIndexName() {
        java.lang.Object ref = indexName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          indexName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string index_name = 1;
       * @return The bytes for indexName.
       */
      public com.google.protobuf.ByteString
          getIndexNameBytes() {
        java.lang.Object ref = indexName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          indexName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string index_name = 1;
       * @param value The indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearIndexName() {
        indexName_ = getDefaultInstance().getIndexName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string index_name = 1;
       * @param value The bytes for indexName to set.
       * @return This builder for chaining.
       */
      public Builder setIndexNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        indexName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._CountItemsRequest.All, vectorindex.Vectorindex._CountItemsRequest.All.Builder, vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder> allBuilder_;
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       * @return Whether the all field is set.
       */
      @java.lang.Override
      public boolean hasAll() {
        return filterCase_ == 2;
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       * @return The all.
       */
      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsRequest.All getAll() {
        if (allBuilder_ == null) {
          if (filterCase_ == 2) {
            return (vectorindex.Vectorindex._CountItemsRequest.All) filter_;
          }
          return vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
        } else {
          if (filterCase_ == 2) {
            return allBuilder_.getMessage();
          }
          return vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      public Builder setAll(vectorindex.Vectorindex._CountItemsRequest.All value) {
        if (allBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          filter_ = value;
          onChanged();
        } else {
          allBuilder_.setMessage(value);
        }
        filterCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      public Builder setAll(
          vectorindex.Vectorindex._CountItemsRequest.All.Builder builderForValue) {
        if (allBuilder_ == null) {
          filter_ = builderForValue.build();
          onChanged();
        } else {
          allBuilder_.setMessage(builderForValue.build());
        }
        filterCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      public Builder mergeAll(vectorindex.Vectorindex._CountItemsRequest.All value) {
        if (allBuilder_ == null) {
          if (filterCase_ == 2 &&
              filter_ != vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance()) {
            filter_ = vectorindex.Vectorindex._CountItemsRequest.All.newBuilder((vectorindex.Vectorindex._CountItemsRequest.All) filter_)
                .mergeFrom(value).buildPartial();
          } else {
            filter_ = value;
          }
          onChanged();
        } else {
          if (filterCase_ == 2) {
            allBuilder_.mergeFrom(value);
          } else {
            allBuilder_.setMessage(value);
          }
        }
        filterCase_ = 2;
        return this;
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      public Builder clearAll() {
        if (allBuilder_ == null) {
          if (filterCase_ == 2) {
            filterCase_ = 0;
            filter_ = null;
            onChanged();
          }
        } else {
          if (filterCase_ == 2) {
            filterCase_ = 0;
            filter_ = null;
          }
          allBuilder_.clear();
        }
        return this;
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      public vectorindex.Vectorindex._CountItemsRequest.All.Builder getAllBuilder() {
        return getAllFieldBuilder().getBuilder();
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder getAllOrBuilder() {
        if ((filterCase_ == 2) && (allBuilder_ != null)) {
          return allBuilder_.getMessageOrBuilder();
        } else {
          if (filterCase_ == 2) {
            return (vectorindex.Vectorindex._CountItemsRequest.All) filter_;
          }
          return vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
        }
      }
      /**
       * .vectorindex._CountItemsRequest.All all = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          vectorindex.Vectorindex._CountItemsRequest.All, vectorindex.Vectorindex._CountItemsRequest.All.Builder, vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder> 
          getAllFieldBuilder() {
        if (allBuilder_ == null) {
          if (!(filterCase_ == 2)) {
            filter_ = vectorindex.Vectorindex._CountItemsRequest.All.getDefaultInstance();
          }
          allBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              vectorindex.Vectorindex._CountItemsRequest.All, vectorindex.Vectorindex._CountItemsRequest.All.Builder, vectorindex.Vectorindex._CountItemsRequest.AllOrBuilder>(
                  (vectorindex.Vectorindex._CountItemsRequest.All) filter_,
                  getParentForChildren(),
                  isClean());
          filter_ = null;
        }
        filterCase_ = 2;
        onChanged();
        return allBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._CountItemsRequest)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._CountItemsRequest)
    private static final vectorindex.Vectorindex._CountItemsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._CountItemsRequest();
    }

    public static vectorindex.Vectorindex._CountItemsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_CountItemsRequest>
        PARSER = new com.google.protobuf.AbstractParser<_CountItemsRequest>() {
      @java.lang.Override
      public _CountItemsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_CountItemsRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_CountItemsRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._CountItemsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface _CountItemsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:vectorindex._CountItemsResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * uint32 item_count = 1;
     * @return The itemCount.
     */
    int getItemCount();
  }
  /**
   * Protobuf type {@code vectorindex._CountItemsResponse}
   */
  public static final class _CountItemsResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:vectorindex._CountItemsResponse)
      _CountItemsResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use _CountItemsResponse.newBuilder() to construct.
    private _CountItemsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private _CountItemsResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new _CountItemsResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              vectorindex.Vectorindex._CountItemsResponse.class, vectorindex.Vectorindex._CountItemsResponse.Builder.class);
    }

    public static final int ITEM_COUNT_FIELD_NUMBER = 1;
    private int itemCount_ = 0;
    /**
     * uint32 item_count = 1;
     * @return The itemCount.
     */
    @java.lang.Override
    public int getItemCount() {
      return itemCount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (itemCount_ != 0) {
        output.writeUInt32(1, itemCount_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (itemCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, itemCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof vectorindex.Vectorindex._CountItemsResponse)) {
        return super.equals(obj);
      }
      vectorindex.Vectorindex._CountItemsResponse other = (vectorindex.Vectorindex._CountItemsResponse) obj;

      if (getItemCount()
          != other.getItemCount()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ITEM_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getItemCount();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static vectorindex.Vectorindex._CountItemsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(vectorindex.Vectorindex._CountItemsResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code vectorindex._CountItemsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:vectorindex._CountItemsResponse)
        vectorindex.Vectorindex._CountItemsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                vectorindex.Vectorindex._CountItemsResponse.class, vectorindex.Vectorindex._CountItemsResponse.Builder.class);
      }

      // Construct using vectorindex.Vectorindex._CountItemsResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemCount_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return vectorindex.Vectorindex.internal_static_vectorindex__CountItemsResponse_descriptor;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsResponse getDefaultInstanceForType() {
        return vectorindex.Vectorindex._CountItemsResponse.getDefaultInstance();
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsResponse build() {
        vectorindex.Vectorindex._CountItemsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public vectorindex.Vectorindex._CountItemsResponse buildPartial() {
        vectorindex.Vectorindex._CountItemsResponse result = new vectorindex.Vectorindex._CountItemsResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(vectorindex.Vectorindex._CountItemsResponse result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemCount_ = itemCount_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof vectorindex.Vectorindex._CountItemsResponse) {
          return mergeFrom((vectorindex.Vectorindex._CountItemsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(vectorindex.Vectorindex._CountItemsResponse other) {
        if (other == vectorindex.Vectorindex._CountItemsResponse.getDefaultInstance()) return this;
        if (other.getItemCount() != 0) {
          setItemCount(other.getItemCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                itemCount_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int itemCount_ ;
      /**
       * uint32 item_count = 1;
       * @return The itemCount.
       */
      @java.lang.Override
      public int getItemCount() {
        return itemCount_;
      }
      /**
       * uint32 item_count = 1;
       * @param value The itemCount to set.
       * @return This builder for chaining.
       */
      public Builder setItemCount(int value) {

        itemCount_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * uint32 item_count = 1;
       * @return This builder for chaining.
       */
      public Builder clearItemCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemCount_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:vectorindex._CountItemsResponse)
    }

    // @@protoc_insertion_point(class_scope:vectorindex._CountItemsResponse)
    private static final vectorindex.Vectorindex._CountItemsResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new vectorindex.Vectorindex._CountItemsResponse();
    }

    public static vectorindex.Vectorindex._CountItemsResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<_CountItemsResponse>
        PARSER = new com.google.protobuf.AbstractParser<_CountItemsResponse>() {
      @java.lang.Override
      public _CountItemsResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<_CountItemsResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<_CountItemsResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public vectorindex.Vectorindex._CountItemsResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__Item_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__Item_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__UpsertItemBatchRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__UpsertItemBatchRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__UpsertItemBatchResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__UpsertItemBatchResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__DeleteItemBatchRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__DeleteItemBatchRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__DeleteItemBatchResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__DeleteItemBatchResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__Vector_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__Vector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__Metadata_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__Metadata_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__Metadata__ListOfStrings_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__Metadata__ListOfStrings_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__MetadataRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__MetadataRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__MetadataRequest_Some_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__MetadataRequest_Some_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__MetadataRequest_All_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__MetadataRequest_All_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__AndExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__AndExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__OrExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__OrExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__NotExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__NotExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__EqualsExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__EqualsExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__GreaterThanExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__GreaterThanExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__GreaterThanOrEqualExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__GreaterThanOrEqualExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__LessThanExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__LessThanExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__LessThanOrEqualExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__LessThanOrEqualExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ListContainsExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ListContainsExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__FilterExpression_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__FilterExpression_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__NoScoreThreshold_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__NoScoreThreshold_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__SearchRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__SearchRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__SearchAndFetchVectorsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__SearchAndFetchVectorsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__SearchHit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__SearchHit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__SearchAndFetchVectorsHit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__SearchAndFetchVectorsHit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__SearchResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__SearchResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__SearchAndFetchVectorsResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__SearchAndFetchVectorsResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__GetItemMetadataBatchRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__GetItemMetadataBatchRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ItemMetadataResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ItemMetadataResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ItemMetadataResponse__Miss_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ItemMetadataResponse__Miss_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ItemMetadataResponse__Hit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ItemMetadataResponse__Hit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__GetItemMetadataBatchResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__GetItemMetadataBatchResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__GetItemBatchRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__GetItemBatchRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ItemResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ItemResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ItemResponse__Miss_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ItemResponse__Miss_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__ItemResponse__Hit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__ItemResponse__Hit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__GetItemBatchResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__GetItemBatchResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__CountItemsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__CountItemsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__CountItemsRequest_All_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__CountItemsRequest_All_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_vectorindex__CountItemsResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_vectorindex__CountItemsResponse_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\021vectorindex.proto\022\013vectorindex\"c\n\005_Ite" +
      "m\022\n\n\002id\030\001 \001(\t\022$\n\006vector\030\002 \001(\0132\024.vectorin" +
      "dex._Vector\022(\n\010metadata\030\003 \003(\0132\026.vectorin" +
      "dex._Metadata\"P\n\027_UpsertItemBatchRequest" +
      "\022\022\n\nindex_name\030\001 \001(\t\022!\n\005items\030\002 \003(\0132\022.ve" +
      "ctorindex._Item\"1\n\030_UpsertItemBatchRespo" +
      "nse\022\025\n\rerror_indices\030\001 \003(\r\":\n\027_DeleteIte" +
      "mBatchRequest\022\022\n\nindex_name\030\001 \001(\t\022\013\n\003ids" +
      "\030\002 \003(\t\"\032\n\030_DeleteItemBatchResponse\"\033\n\007_V" +
      "ector\022\020\n\010elements\030\001 \003(\002\"\357\001\n\t_Metadata\022\r\n" +
      "\005field\030\001 \001(\t\022\026\n\014string_value\030\002 \001(\tH\000\022\027\n\r" +
      "integer_value\030\003 \001(\003H\000\022\026\n\014double_value\030\004 " +
      "\001(\001H\000\022\027\n\rboolean_value\030\005 \001(\010H\000\022F\n\025list_o" +
      "f_strings_value\030\006 \001(\0132%.vectorindex._Met" +
      "adata._ListOfStringsH\000\032 \n\016_ListOfStrings" +
      "\022\016\n\006values\030\001 \003(\tB\007\n\005value\"\237\001\n\020_MetadataR" +
      "equest\0222\n\004some\030\002 \001(\0132\".vectorindex._Meta" +
      "dataRequest.SomeH\000\0220\n\003all\030\003 \001(\0132!.vector" +
      "index._MetadataRequest.AllH\000\032\026\n\004Some\022\016\n\006" +
      "fields\030\001 \003(\t\032\005\n\003AllB\006\n\004kind\"\205\001\n\016_AndExpr" +
      "ession\0228\n\020first_expression\030\001 \001(\0132\036.vecto" +
      "rindex._FilterExpression\0229\n\021second_expre" +
      "ssion\030\002 \001(\0132\036.vectorindex._FilterExpress" +
      "ion\"\204\001\n\r_OrExpression\0228\n\020first_expressio" +
      "n\030\001 \001(\0132\036.vectorindex._FilterExpression\022" +
      "9\n\021second_expression\030\002 \001(\0132\036.vectorindex" +
      "._FilterExpression\"N\n\016_NotExpression\022<\n\024" +
      "expression_to_negate\030\001 \001(\0132\036.vectorindex" +
      "._FilterExpression\"\214\001\n\021_EqualsExpression" +
      "\022\r\n\005field\030\001 \001(\t\022\026\n\014string_value\030\002 \001(\tH\000\022" +
      "\027\n\rinteger_value\030\003 \001(\003H\000\022\025\n\013float_value\030" +
      "\004 \001(\002H\000\022\027\n\rboolean_value\030\005 \001(\010H\000B\007\n\005valu" +
      "e\"`\n\026_GreaterThanExpression\022\r\n\005field\030\001 \001" +
      "(\t\022\027\n\rinteger_value\030\002 \001(\003H\000\022\025\n\013float_val" +
      "ue\030\003 \001(\002H\000B\007\n\005value\"g\n\035_GreaterThanOrEqu" +
      "alExpression\022\r\n\005field\030\001 \001(\t\022\027\n\rinteger_v" +
      "alue\030\002 \001(\003H\000\022\025\n\013float_value\030\003 \001(\002H\000B\007\n\005v" +
      "alue\"]\n\023_LessThanExpression\022\r\n\005field\030\001 \001" +
      "(\t\022\027\n\rinteger_value\030\002 \001(\003H\000\022\025\n\013float_val" +
      "ue\030\003 \001(\002H\000B\007\n\005value\"d\n\032_LessThanOrEqualE" +
      "xpression\022\r\n\005field\030\001 \001(\t\022\027\n\rinteger_valu" +
      "e\030\002 \001(\003H\000\022\025\n\013float_value\030\003 \001(\002H\000B\007\n\005valu" +
      "e\"I\n\027_ListContainsExpression\022\r\n\005field\030\001 " +
      "\001(\t\022\026\n\014string_value\030\002 \001(\tH\000B\007\n\005value\"\377\004\n" +
      "\021_FilterExpression\022;\n\021equals_expression\030" +
      "\001 \001(\0132\036.vectorindex._EqualsExpressionH\000\022" +
      "5\n\016and_expression\030\002 \001(\0132\033.vectorindex._A" +
      "ndExpressionH\000\0223\n\ror_expression\030\003 \001(\0132\032." +
      "vectorindex._OrExpressionH\000\0225\n\016not_expre" +
      "ssion\030\004 \001(\0132\033.vectorindex._NotExpression" +
      "H\000\022F\n\027greater_than_expression\030\005 \001(\0132#.ve" +
      "ctorindex._GreaterThanExpressionH\000\022V\n gr" +
      "eater_than_or_equal_expression\030\006 \001(\0132*.v" +
      "ectorindex._GreaterThanOrEqualExpression" +
      "H\000\022@\n\024less_than_expression\030\007 \001(\0132 .vecto" +
      "rindex._LessThanExpressionH\000\022P\n\035less_tha" +
      "n_or_equal_expression\030\010 \001(\0132\'.vectorinde" +
      "x._LessThanOrEqualExpressionH\000\022H\n\030list_c" +
      "ontains_expression\030\t \001(\0132$.vectorindex._" +
      "ListContainsExpressionH\000B\014\n\nexpression\"\023" +
      "\n\021_NoScoreThreshold\"\270\002\n\016_SearchRequest\022\022" +
      "\n\nindex_name\030\001 \001(\t\022\r\n\005top_k\030\002 \001(\r\022*\n\014que" +
      "ry_vector\030\003 \001(\0132\024.vectorindex._Vector\0226\n" +
      "\017metadata_fields\030\004 \001(\0132\035.vectorindex._Me" +
      "tadataRequest\022\031\n\017score_threshold\030\005 \001(\002H\000" +
      "\022<\n\022no_score_threshold\030\006 \001(\0132\036.vectorind" +
      "ex._NoScoreThresholdH\000\0229\n\021filter_express" +
      "ion\030\007 \001(\0132\036.vectorindex._FilterExpressio" +
      "nB\013\n\tthreshold\"\307\002\n\035_SearchAndFetchVector" +
      "sRequest\022\022\n\nindex_name\030\001 \001(\t\022\r\n\005top_k\030\002 " +
      "\001(\r\022*\n\014query_vector\030\003 \001(\0132\024.vectorindex." +
      "_Vector\0226\n\017metadata_fields\030\004 \001(\0132\035.vecto" +
      "rindex._MetadataRequest\022\031\n\017score_thresho" +
      "ld\030\005 \001(\002H\000\022<\n\022no_score_threshold\030\006 \001(\0132\036" +
      ".vectorindex._NoScoreThresholdH\000\0229\n\021filt" +
      "er_expression\030\007 \001(\0132\036.vectorindex._Filte" +
      "rExpressionB\013\n\tthreshold\"Q\n\n_SearchHit\022\n" +
      "\n\002id\030\001 \001(\t\022\r\n\005score\030\002 \001(\002\022(\n\010metadata\030\003 " +
      "\003(\0132\026.vectorindex._Metadata\"\206\001\n\031_SearchA" +
      "ndFetchVectorsHit\022\n\n\002id\030\001 \001(\t\022\r\n\005score\030\002" +
      " \001(\002\022(\n\010metadata\030\003 \003(\0132\026.vectorindex._Me" +
      "tadata\022$\n\006vector\030\004 \001(\0132\024.vectorindex._Ve" +
      "ctor\"8\n\017_SearchResponse\022%\n\004hits\030\001 \003(\0132\027." +
      "vectorindex._SearchHit\"V\n\036_SearchAndFetc" +
      "hVectorsResponse\0224\n\004hits\030\001 \003(\0132&.vectori" +
      "ndex._SearchAndFetchVectorsHit\"w\n\034_GetIt" +
      "emMetadataBatchRequest\022\022\n\nindex_name\030\001 \001" +
      "(\t\022\013\n\003ids\030\002 \003(\t\0226\n\017metadata_fields\030\003 \001(\013" +
      "2\035.vectorindex._MetadataRequest\"\334\001\n\025_Ite" +
      "mMetadataResponse\0228\n\004miss\030\001 \001(\0132(.vector" +
      "index._ItemMetadataResponse._MissH\000\0226\n\003h" +
      "it\030\002 \001(\0132\'.vectorindex._ItemMetadataResp" +
      "onse._HitH\000\032\007\n\005_Miss\032<\n\004_Hit\022\n\n\002id\030\001 \001(\t" +
      "\022(\n\010metadata\030\002 \003(\0132\026.vectorindex._Metada" +
      "taB\n\n\010response\"c\n\035_GetItemMetadataBatchR" +
      "esponse\022B\n\026item_metadata_response\030\001 \003(\0132" +
      "\".vectorindex._ItemMetadataResponse\"o\n\024_" +
      "GetItemBatchRequest\022\022\n\nindex_name\030\001 \001(\t\022" +
      "\013\n\003ids\030\002 \003(\t\0226\n\017metadata_fields\030\003 \001(\0132\035." +
      "vectorindex._MetadataRequest\"\352\001\n\r_ItemRe" +
      "sponse\0220\n\004miss\030\001 \001(\0132 .vectorindex._Item" +
      "Response._MissH\000\022.\n\003hit\030\002 \001(\0132\037.vectorin" +
      "dex._ItemResponse._HitH\000\032\007\n\005_Miss\032b\n\004_Hi" +
      "t\022\n\n\002id\030\001 \001(\t\022$\n\006vector\030\002 \001(\0132\024.vectorin" +
      "dex._Vector\022(\n\010metadata\030\003 \003(\0132\026.vectorin" +
      "dex._MetadataB\n\n\010response\"J\n\025_GetItemBat" +
      "chResponse\0221\n\ritem_response\030\001 \003(\0132\032.vect" +
      "orindex._ItemResponse\"m\n\022_CountItemsRequ" +
      "est\022\022\n\nindex_name\030\001 \001(\t\0222\n\003all\030\002 \001(\0132#.v" +
      "ectorindex._CountItemsRequest.AllH\000\032\005\n\003A" +
      "llB\010\n\006filter\")\n\023_CountItemsResponse\022\022\n\ni" +
      "tem_count\030\001 \001(\r2\251\005\n\013VectorIndex\022`\n\017Upser" +
      "tItemBatch\022$.vectorindex._UpsertItemBatc" +
      "hRequest\032%.vectorindex._UpsertItemBatchR" +
      "esponse\"\000\022`\n\017DeleteItemBatch\022$.vectorind" +
      "ex._DeleteItemBatchRequest\032%.vectorindex" +
      "._DeleteItemBatchResponse\"\000\022E\n\006Search\022\033." +
      "vectorindex._SearchRequest\032\034.vectorindex" +
      "._SearchResponse\"\000\022r\n\025SearchAndFetchVect" +
      "ors\022*.vectorindex._SearchAndFetchVectors" +
      "Request\032+.vectorindex._SearchAndFetchVec" +
      "torsResponse\"\000\022o\n\024GetItemMetadataBatch\022)" +
      ".vectorindex._GetItemMetadataBatchReques" +
      "t\032*.vectorindex._GetItemMetadataBatchRes" +
      "ponse\"\000\022W\n\014GetItemBatch\022!.vectorindex._G" +
      "etItemBatchRequest\032\".vectorindex._GetIte" +
      "mBatchResponse\"\000\022Q\n\nCountItems\022\037.vectori" +
      "ndex._CountItemsRequest\032 .vectorindex._C" +
      "ountItemsResponse\"\000b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_vectorindex__Item_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_vectorindex__Item_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__Item_descriptor,
        new java.lang.String[] { "Id", "Vector", "Metadata", });
    internal_static_vectorindex__UpsertItemBatchRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_vectorindex__UpsertItemBatchRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__UpsertItemBatchRequest_descriptor,
        new java.lang.String[] { "IndexName", "Items", });
    internal_static_vectorindex__UpsertItemBatchResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_vectorindex__UpsertItemBatchResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__UpsertItemBatchResponse_descriptor,
        new java.lang.String[] { "ErrorIndices", });
    internal_static_vectorindex__DeleteItemBatchRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_vectorindex__DeleteItemBatchRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__DeleteItemBatchRequest_descriptor,
        new java.lang.String[] { "IndexName", "Ids", });
    internal_static_vectorindex__DeleteItemBatchResponse_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_vectorindex__DeleteItemBatchResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__DeleteItemBatchResponse_descriptor,
        new java.lang.String[] { });
    internal_static_vectorindex__Vector_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_vectorindex__Vector_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__Vector_descriptor,
        new java.lang.String[] { "Elements", });
    internal_static_vectorindex__Metadata_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_vectorindex__Metadata_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__Metadata_descriptor,
        new java.lang.String[] { "Field", "StringValue", "IntegerValue", "DoubleValue", "BooleanValue", "ListOfStringsValue", "Value", });
    internal_static_vectorindex__Metadata__ListOfStrings_descriptor =
      internal_static_vectorindex__Metadata_descriptor.getNestedTypes().get(0);
    internal_static_vectorindex__Metadata__ListOfStrings_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__Metadata__ListOfStrings_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_vectorindex__MetadataRequest_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_vectorindex__MetadataRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__MetadataRequest_descriptor,
        new java.lang.String[] { "Some", "All", "Kind", });
    internal_static_vectorindex__MetadataRequest_Some_descriptor =
      internal_static_vectorindex__MetadataRequest_descriptor.getNestedTypes().get(0);
    internal_static_vectorindex__MetadataRequest_Some_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__MetadataRequest_Some_descriptor,
        new java.lang.String[] { "Fields", });
    internal_static_vectorindex__MetadataRequest_All_descriptor =
      internal_static_vectorindex__MetadataRequest_descriptor.getNestedTypes().get(1);
    internal_static_vectorindex__MetadataRequest_All_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__MetadataRequest_All_descriptor,
        new java.lang.String[] { });
    internal_static_vectorindex__AndExpression_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_vectorindex__AndExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__AndExpression_descriptor,
        new java.lang.String[] { "FirstExpression", "SecondExpression", });
    internal_static_vectorindex__OrExpression_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_vectorindex__OrExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__OrExpression_descriptor,
        new java.lang.String[] { "FirstExpression", "SecondExpression", });
    internal_static_vectorindex__NotExpression_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_vectorindex__NotExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__NotExpression_descriptor,
        new java.lang.String[] { "ExpressionToNegate", });
    internal_static_vectorindex__EqualsExpression_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_vectorindex__EqualsExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__EqualsExpression_descriptor,
        new java.lang.String[] { "Field", "StringValue", "IntegerValue", "FloatValue", "BooleanValue", "Value", });
    internal_static_vectorindex__GreaterThanExpression_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_vectorindex__GreaterThanExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__GreaterThanExpression_descriptor,
        new java.lang.String[] { "Field", "IntegerValue", "FloatValue", "Value", });
    internal_static_vectorindex__GreaterThanOrEqualExpression_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_vectorindex__GreaterThanOrEqualExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__GreaterThanOrEqualExpression_descriptor,
        new java.lang.String[] { "Field", "IntegerValue", "FloatValue", "Value", });
    internal_static_vectorindex__LessThanExpression_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_vectorindex__LessThanExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__LessThanExpression_descriptor,
        new java.lang.String[] { "Field", "IntegerValue", "FloatValue", "Value", });
    internal_static_vectorindex__LessThanOrEqualExpression_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_vectorindex__LessThanOrEqualExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__LessThanOrEqualExpression_descriptor,
        new java.lang.String[] { "Field", "IntegerValue", "FloatValue", "Value", });
    internal_static_vectorindex__ListContainsExpression_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_vectorindex__ListContainsExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ListContainsExpression_descriptor,
        new java.lang.String[] { "Field", "StringValue", "Value", });
    internal_static_vectorindex__FilterExpression_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_vectorindex__FilterExpression_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__FilterExpression_descriptor,
        new java.lang.String[] { "EqualsExpression", "AndExpression", "OrExpression", "NotExpression", "GreaterThanExpression", "GreaterThanOrEqualExpression", "LessThanExpression", "LessThanOrEqualExpression", "ListContainsExpression", "Expression", });
    internal_static_vectorindex__NoScoreThreshold_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_vectorindex__NoScoreThreshold_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__NoScoreThreshold_descriptor,
        new java.lang.String[] { });
    internal_static_vectorindex__SearchRequest_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_vectorindex__SearchRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__SearchRequest_descriptor,
        new java.lang.String[] { "IndexName", "TopK", "QueryVector", "MetadataFields", "ScoreThreshold", "NoScoreThreshold", "FilterExpression", "Threshold", });
    internal_static_vectorindex__SearchAndFetchVectorsRequest_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_vectorindex__SearchAndFetchVectorsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__SearchAndFetchVectorsRequest_descriptor,
        new java.lang.String[] { "IndexName", "TopK", "QueryVector", "MetadataFields", "ScoreThreshold", "NoScoreThreshold", "FilterExpression", "Threshold", });
    internal_static_vectorindex__SearchHit_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_vectorindex__SearchHit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__SearchHit_descriptor,
        new java.lang.String[] { "Id", "Score", "Metadata", });
    internal_static_vectorindex__SearchAndFetchVectorsHit_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_vectorindex__SearchAndFetchVectorsHit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__SearchAndFetchVectorsHit_descriptor,
        new java.lang.String[] { "Id", "Score", "Metadata", "Vector", });
    internal_static_vectorindex__SearchResponse_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_vectorindex__SearchResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__SearchResponse_descriptor,
        new java.lang.String[] { "Hits", });
    internal_static_vectorindex__SearchAndFetchVectorsResponse_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_vectorindex__SearchAndFetchVectorsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__SearchAndFetchVectorsResponse_descriptor,
        new java.lang.String[] { "Hits", });
    internal_static_vectorindex__GetItemMetadataBatchRequest_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_vectorindex__GetItemMetadataBatchRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__GetItemMetadataBatchRequest_descriptor,
        new java.lang.String[] { "IndexName", "Ids", "MetadataFields", });
    internal_static_vectorindex__ItemMetadataResponse_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_vectorindex__ItemMetadataResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ItemMetadataResponse_descriptor,
        new java.lang.String[] { "Miss", "Hit", "Response", });
    internal_static_vectorindex__ItemMetadataResponse__Miss_descriptor =
      internal_static_vectorindex__ItemMetadataResponse_descriptor.getNestedTypes().get(0);
    internal_static_vectorindex__ItemMetadataResponse__Miss_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ItemMetadataResponse__Miss_descriptor,
        new java.lang.String[] { });
    internal_static_vectorindex__ItemMetadataResponse__Hit_descriptor =
      internal_static_vectorindex__ItemMetadataResponse_descriptor.getNestedTypes().get(1);
    internal_static_vectorindex__ItemMetadataResponse__Hit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ItemMetadataResponse__Hit_descriptor,
        new java.lang.String[] { "Id", "Metadata", });
    internal_static_vectorindex__GetItemMetadataBatchResponse_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_vectorindex__GetItemMetadataBatchResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__GetItemMetadataBatchResponse_descriptor,
        new java.lang.String[] { "ItemMetadataResponse", });
    internal_static_vectorindex__GetItemBatchRequest_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_vectorindex__GetItemBatchRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__GetItemBatchRequest_descriptor,
        new java.lang.String[] { "IndexName", "Ids", "MetadataFields", });
    internal_static_vectorindex__ItemResponse_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_vectorindex__ItemResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ItemResponse_descriptor,
        new java.lang.String[] { "Miss", "Hit", "Response", });
    internal_static_vectorindex__ItemResponse__Miss_descriptor =
      internal_static_vectorindex__ItemResponse_descriptor.getNestedTypes().get(0);
    internal_static_vectorindex__ItemResponse__Miss_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ItemResponse__Miss_descriptor,
        new java.lang.String[] { });
    internal_static_vectorindex__ItemResponse__Hit_descriptor =
      internal_static_vectorindex__ItemResponse_descriptor.getNestedTypes().get(1);
    internal_static_vectorindex__ItemResponse__Hit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__ItemResponse__Hit_descriptor,
        new java.lang.String[] { "Id", "Vector", "Metadata", });
    internal_static_vectorindex__GetItemBatchResponse_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_vectorindex__GetItemBatchResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__GetItemBatchResponse_descriptor,
        new java.lang.String[] { "ItemResponse", });
    internal_static_vectorindex__CountItemsRequest_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_vectorindex__CountItemsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__CountItemsRequest_descriptor,
        new java.lang.String[] { "IndexName", "All", "Filter", });
    internal_static_vectorindex__CountItemsRequest_All_descriptor =
      internal_static_vectorindex__CountItemsRequest_descriptor.getNestedTypes().get(0);
    internal_static_vectorindex__CountItemsRequest_All_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__CountItemsRequest_All_descriptor,
        new java.lang.String[] { });
    internal_static_vectorindex__CountItemsResponse_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_vectorindex__CountItemsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_vectorindex__CountItemsResponse_descriptor,
        new java.lang.String[] { "ItemCount", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy